JavaScript书上1-8章节选择题答案:
第一章
一、 填空题
1. 单行注释以__//___开始。
2. console.log(alert('Hello'))在控制台的输出结果是_undefined_____。
3. JavaScript由__ECMAScript____、_DOM_____、___BOM___三部分组成。
4. console.log('<script>alert(123);<\/script>') 的输出结果是___<script>alert(123);</script>___。
二、 判断题
1. JavaScript不可以跨平台。( X )
2. alert('test')与Alert('test')都表示以警告框的形式弹出test提示信息。( X)
3. 在JavaScript中,如果一条语句结束后,换行书写下一条语句,后面的分号可以省略。( √)
4. 通过外链式引入JavaScript时,可以省略</script>标签。( X )
5. async用于异步加载,即先下载文件,不阻塞其他代码执行。( √
6. JavaScript中,age与Age代表不同的变量√)
三、 选择题
1. 下列选项中不属于ECMAScript 6保留关键字的是( C )。
A. delete B. this C. static D. new
2. JavaScript为代码添加多行注释的语法为( C )。
A. <!-- --> B. // C. /* */ D. #
3. 下列选项中,不能作为变量名开头的是( B )。
A. 字母 B.数字 C. 下划线 D.$
四、 编程题
利用本章知识,编写一个将用户输入的信息输出到网页的JavaScript程序。
第二章
一、 填空题
1. JavaScript中的数据类型分为两大类,分别是__基础数据类____和__复杂数据类(引用数据类)____。
2. 表达式(-5) % 3的运行结果等于___-2___。
3. 表达式“var a = 1, b = 1;console.log(++a)”的输出结果是__-2____。
二、 判断题
1. JavaScript中的数字型可以用来保存整数或浮点数(小数)。( √)
2. console.log((3 + 6) * 2); 语句的输出结果为15。( X )
3. 运算符“.”可用于连接两个字符串。(X )
三、 选择题
1. “console.log(true - 1)”语句输出的结果是( B)。
A. 1 B. 0 C. true1 D. -1
2. 下列选项中,与0相等(==)的是( D)。
A. null B. undefined C. NaN D. ''
3. 下列选项中,不属于比较运算符的是(D )。
A. == B. === C. !== D. =
四、 编程题
1. 根据用户输入的数值(数字1~7),返回对应的星期几。例如,7代表星期日、6代表星期六,依次类推。
2. 比较两个数的最大值(用户依次输入2个数,最后弹出最大的那个值)。
第三章
一、 填空题
1. 表达式“[a, b] = [12, 34, 56]”执行后,变量b的值为____34__。
2. ___continue___关键字,在循环语句中使用时,可以用来立即跳出本次循环。
二、 判断题
1. while语句可以在条件表达式为true的前提下,循环执行指定的一段代码,直到条件表达式为false时结束循环。( √ )
2. break关键字,在循环语句中使用时,其作用是立即跳出本次循环( X )
3. 可以使用“数组名[索引]” 的方式来访问数组元素( √)
三、 选择题
1. 下列语句不能用于遍历数组的是( D )。
A.for B.for…in C.for…of D.if
2. 执行代码“var nums = [[2, 4], [6, 9]];console.log(nums[1][0]);”,输出结果正确的是( D)。
A.2 B.4 C. 6 D. 9
3. 下列创建数组的方式,错误的是( C)。
A.var arr = new Array(); B. var arr = [];
C.var arr = new array(); D. var arr =[]; arr.length = 3;
四、 编程题
1. 移出数组arr“[1,2,3,4,2,5,6,2,7,2]”中与2相等的元素,并生成一个新数组,不改变原数组。
2. 请将数组“['苹果', '香蕉', '酥梨', '榴莲', '樱桃', '柿子', '葡萄', '哈密瓜', '西瓜']”中的元素依次打印到控制台。
第四章
一、 填空题
1. ___函数表达式___方式定义函数时,要考虑函数定义和执行的顺序。
2. JavaScript中函数的作用域分为全局作用域、__函数作用域____和块级作用域。
3. 代码“function info() {year = 1999;};info();console.log(year)”的结果是__1999____。
二、 判断题
1. 函数showTime()与showtime()表示的是同一个函数。( X )
2. 函数内通过关键子var定义的变量可以在全局作用域下进行访问。( X )
3. 函数“((a, b)=> a * b)(6, 2);”的返回值是12。( √ )
三、 选择题
1. 阅读以下代码,执行fn1(4, 5)的返回值是(B)。
function fn1(x, y) {
return (++x) + (y++);
}
A. 9 B.10 C.11 D.12
2. 阅读以下代码,执行fn(7)的返回值是( A )。
var x = 10;
function fn(myNum) {
var x = 11
return x + myNum;
}
A. 18 B. 17 C. 10 D. NaN
3. 下列选项中,可以用于获取用户传递的实际参数值的是(D )。
A. arguments.length B. theNums C. params D. arguments
四、 程序分析题
1. 写出下面代码的运行结果。
var a, b;
(function() {
alert(a);
alert(b);
var a = b = 3;
alert(a);
alert(b);
})();
alert(a);
alert(b);
2. 以下代码执行后, num 的值是多少?
var foo = function(x, y) {
return x - y;
};
function foo(x, y) {
return x + y;
}
var num = foo(1, 2);
console.log(num);
第五章
一、 填空题
1. 当需要判断一个对象中的某个成员是否存在时,可以使用____in__运算符。
2. Math中的___random()___方法用来获取随机数,每次调用该方法返回的结果都不同。
3. ___Date()___是日期对象的构造函数。
4. 可以通过Date对象中的___getMonth()___方法来获取月份,范围是0~11。
二、 判断题
1. 利用构造函数(类)创建对象的过程,称为实例化。(√ )
2. Math对象用来对数字进行与数学相关的运算,该对象是构造函数。( X )
3. 数组类型检测有两种常用的方式,分别是使用instanceof运算符和使用Array.isArray()方法。( √)
4. 使用Math.floor(Math.random() * (max + 1) + 1)表示生成1到任意数之间的随机整数。(√)
三、 选择题
1. 下面选项中,获取从1970-01-01 00:00:00距离Date对象所代表时间的毫秒数的是( A)。
A. getTime() B. setTime() C. getFullYear() D. getMonth()
2. 下面选项中,删除数组的最后一个元素的方法是( A )。
A. pop()
B. unshift()
C. shift()
D. push()
3. 下列选项中,可以实现颠倒数组中元素的位置的是( A )。
A. reverse()
B. sort()
C. indexOf()
D. lastIndexOf()
四、 编程题
1. 利用String对象实现删除字符串前后空格字符。
2. 请用对象字面量的形式创建一个名字为可可的狗对象,具体信息如下。
名称:可可
类型(type):阿拉斯加犬
年龄:5岁
颜色:棕红色
技能:汪汪叫、摇尾巴
第六章
一、 填空题
1. 事件的三要素分别是__时间源____、___事件类型___、_____事件处理程序_。
2. ___getElementByld()___方法是根据id来获取元素。
3. 通过___innerHTML___、___innerText___、__textContent____方式可以修改元素内容。
二、 判断题
1. document.querySelector('div')可以获取文档中第一个div元素。( √ )
2. Web API包括BOM和DOM两部分组成。( √ )
3. HTML文档每个换行<br>都是一个文本节点。(X )
4. document对象的getElementsByClassName()方法和getElementsByName()方法返回的都是元素对象集合HTMLCollection。( X )
三、 选择题
1. 下面可用于获取文档中第一个div元素的是( A)。
A. document.querySelector('div') B. document.querySelectorAll('div')
C. document.getElementsByName('div') D. 以上选项都可以
2. 下列选项中,可以作为DOM的style属性操作的样式名为( B )。
A. Background B. left C. font-size D. Textalign
3. 下列选项中,可用于实现动态改变指定div中内容的是( C)。
A.console.log() B. document.write() C. innerHTML D. 以上选项都可以
4. 关于获取元素,以下描述正确的是(D )。
A. document.getElementById()获取到的是元素集合
B. document.getElementsByTagName()获取到的是单个元素
C. document.querySelector()获取到的是元素集合
D. document.getElementsByClassName()有浏览器兼容性问题
5. 以下代码用于单击一个按钮,弹出对话框。在横线处应填写的正确代码是( A)。
<button id="btn">唐伯虎</button>
<script>
var btn = document.getElementById('btn');
____________
</script>
A. btn.onclick = function() { alert('点秋香'); } B. btn.onclick = alert( '点秋香' );
C. btn.click = function() { alert('点秋香'); } D. btn.click()
四、 编程题
请编写代码,实现根据系统时间显示问候语的功能,通过改变div中内容,显示不同问候语。要求如下。
6点之前,显示问候语“凌晨好”。
9点之前,显示问候语“早上好”。
12点之前,显示问候语“上午好”。
14点之前,显示问候语“中午好”。
17点之前,显示问候语“下午好”。
19点之前,显示问候语“傍晚好”。
22点之前,显示问候语“晚上好”。
22点之后包括22点,显示问候语“夜里好”。
第七章
一、 填空题
1. 排他思想的实现步骤是___所有元素全部清除___与___设置当前元素___。
2. HTML 5新增了通过___date-属性名___方式设置自定义属性。
3. HTML 5中通过___element.dataset.属性或者element.dataset[‘属性’]___获取自定义属性。
4. __children____属性可以获取元素的所有子元素节点,它是一个可读属性。
5. DOM根据HTML中各节点的不同作用,将文档中的注释单独划分为__注释节点____。
二、 判断题
1. 使用document.createElement()可以创建元素节点。( √ )
2. 键盘事件对象是KeyBoardEvent。( √ )
3. 低版本的IE浏览器(IE 6~IE 8)中,可以通过event获取事件对象。( √ )
4. appendChild()方法表示将一个节点添加到指定父节点的子节点列表前面。( x )
5.cloneNode()方法表示返回调用该方法的节点的一个副本,也称为克隆节点。( √ )
三、 选择题
1. 下列选项中,可以实现创建元素的是( D)。
A. element.push('<p>你好</p>') B. element.pop('<p>你好</p>')
C. element.innerHtml = '<p>你好</p>' D. document.createElement("p")
2. 关于添加元素,下列选项描述错误的是( D )。
A. innerHTML会覆盖原来的元素
B. appendChild 是在父元素内部追加
C. insertBefore是在父元素内部指定的位置添加
D. createElement创建的元素立即会添加到页面中
3. 关于事件对象,描述错误的是( D )。
A. 事件对象的属性中保存了跟事件相关的一系列信息
B. 事件触发时就会产生事件对象
C. 事件对象的获取有兼容性问题
D. 通过事件对象不可以阻止事件冒泡和默认行为
4. 下列选项,可以正确获取到兼容了各个浏览器的事件对象的是( A)。
A. document.onclick = function (event) { var e = window.event || event; }
B. document.onclick = function (event) { var e = window.evt || event; }
C. document.onclick = function (event) { var e = window.event || evt; }
D. document.onclick = function (event) { var e = window.evt || evt; }
5. 关于事件监听,描述错误的是( C )。
A. 可以给同一元素同一事件注册多个监听器
B. addEventListener() 有浏览器兼容问题
C. addEventListener() 方法有两个参数
D. 低版本的IE可以使用attachEvent代替addEventListener
四、 简答题
1. 请简单介绍排他操作的一般实现步骤。
第一步:所以元素全部清除
第二部:设置当前元素
2. 请解释说明childNodes和children的区别。
childNodes:属性获得的是当前元素的所有子节点的集合,该集合为即时更新的集合
children: 是一个可读的属性,返回所有子元素节点,只返回子元素节点,其余节点不返回
五、 编程题
完成动态生成表格案例,具体要求如下。
① 使用数组把学生数据模拟出来。
② 动态创建行、单元格。
③ 为单元格填充数据。
④ 提供“删除”链接,可删除所在的行。
案例的实现效果如下图所示。
动态生成表格
第八章
一、 填空题
1. 在BOM中,所有对象的父对象是___window___。
2. 页面中所有内容加载完之后触发的事件是___window.onload___。
3. history对象的___length___属性可获取历史列表中的URL数量。
4. __document.DOMContentLoaded____事件是在DOM结构加载完触发的。
二、 判断题
1. 全局变量可以通过window对象进行访问。( √ )
2. 修改location对象的href属性可获取或设置URL。( √ )
3. 使用clearTimeout()和clearInterval()可以清除定时器。(√ )
4. 使用history对象的 go()方法可以实现页面前进或后退。(√ )
三、 选择题
1. 下列选项中,不是window对象的属性的是( A)。
A. pageX
B. location
C. history
D. navigator
2. 下面关于BOM对象的描述,错误的是( D )。
A. go(-1)与back()皆表示向历史列表后退一步
B.通过confirm()实现的“确认”对话框,单击“确认”时返回true
C. go(0)表示刷新当前网页
D.以上选项都不正确
3. 下列描述错误的是( A )。
A. onload和DOMContentLoaded都是页面加载事件,没有区别
B. DOMContentLoaded有浏览器兼容问题
C. 定义在全局作用域中的变量是window对象的属性
D. window对象的方法在调用时可以省略不写window
四、 编程题
编写程序,实现电子时钟自动走动的效果,并提供一个按钮控制电子时钟是否停止走动。
编程题代码:
第一章
1.用户输入的信息。
JavaScript代码如下:
<script>
var msg = prompt("请您输入内容");
alert('用户输入的内容是:'+ msg)
</script>
第二章
1.用户依次输入 数值,返回对应的星期。
<script>
var number = prompt('请输入1-7之间的数字');
switch (number) {
case '7':
alert('星期日');
break;
case '6':
alert('星期六');
break;
case '5':
alert('星期五');
break;
case '4':
alert('星期四');
break;
case '3':
alert('星期三');
break;
case '2':
alert('星期二');
break;
case '1':
alert('星期一');
break;
default:
alert('请输入1~7之间的数字');
}
</script>
2. 比较两个数的最大值: JavaScript代码如下:
<script>
var num1 = prompt('请输入第1个数');
var num2 = prompt('请输入第2个数');
if(parseFloat(num1) > parseFloat(num2)){
alert('最大的数是'+ num1)
}else{
alert('最大的数是'+ num2)
}
</script>
第三章
1.苹果榴莲香蕉打印。
<script>
var arr = [1,2,3,4,2,5,6,2,7,2];
var newArr=[];
for(var i=0;i<arr.length;i++){
if(arr[i] != 2){
newArr[newArr.length] = arr[i];
}
}
console.log(newArr);
</script>
2. JavaScript代码如下:
<script>
var arr = ['苹果', '香蕉', '酥梨', '榴莲', '樱桃', '柿子', '葡萄', '哈密瓜', '西瓜'];
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
</script>
第四章
1.写出运行结果。
<script>
var a, b;
(function() {
alert(a); // undefined
alert(b); // undefined
var a = b = 3;
alert(a); // 3
alert(b); // 3
})();
alert(a); // undefined
alert(b); // 3
</script>
2. 运行代码,num的值是多少?。
<script>
var foo = function(x, y) {
return x - y;
};
function foo(x, y) {
return x + y;
}
var num = foo(1, 2);
console.log(num); // 结果为:-1
</script>
第五章
1. 可可狗
<script>
var dog = {
dName: '可可',
type: '阿拉斯加犬',
age: '5岁',
color: '棕红色',
call: function() {
console.log('汪汪叫');
},
tail: function() {
console.log('摇尾巴');
}
};
console.log(dog.dName);
console.log(dog.type);
console.log(dog.age);
console.log(dog.color);
dog.call();
dog.tail();
</script>
第六章
1.根据系统时间显示问候语
<div></div>
<script>
// 根据系统不同时间来判断,所以需要用到日期内置对象
// 利用多分支语句来设置不同的图片
// 1.获取元素
var div = document.querySelector('div');
// 2. 得到当前的小时数
var h = new Date().getHours();
// 3. 判断小时数改变文字信息
if(h < 6){
document.write('凌晨好')
}else if (h < 9){
document.write("早上好!")
}else if (h < 12){
document.write("上午好!")
}else if (h < 14){
document.write("中午好!")
}else if (h < 17){
document.write("下午好!")
}else if (h < 19){
document.write("傍晚好!")
}else if (h < 22){
document.write("晚上好!")
}else {
document.write("夜里好!")
}
</script>
第七章
四、 简答题
1. 请简单介绍排他操作的一般实现步骤。
第一步是:所有元素全部清除(排除掉其他的(包括自己))
第二步是:设置当前元素(给自己设置想要实现的效果)
2. 请解释说明childNodes和children的区别。
childNodes:属性获得的是当前元素的所有子节点的集合,该集合为即时更新的集合
children: 是一个可读的属性,返回所有子元素节点,只返回子元素节点,其余节点不返回
五、 编程题
1. HTML代码如下:
<table cellspacing="0">
<thead>
<tr>
<th>姓名</th>
<th>科目</th>
<th>成绩</th>
<th>操作</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
JavaScript代码如下:
<script>
var datas = [{
name: '张三',
subject: 'JavaScript',
score: 100
}, {
name: '李四',
subject: 'JavaScript',
score: 90
}, {
name: '刘五',
subject: 'JavaScript',
score: 90
}];
var tbody = document.querySelector('tbody');
for (var i = 0; i < datas.length; i++) { // 外面的for循环管行 tr
var tr = document.createElement('tr');
tbody.appendChild(tr);
for (var k in datas[i]) { // 里面的for循环管列 td
var td = document.createElement('td');
td.innerHTML = datas[i][k];
tr.appendChild(td);
}
var td = document.createElement('td');
td.innerHTML = '<a href="javascript:;">删除 </a>';
tr.appendChild(td);
}
var as = document.querySelectorAll('a');
for (var i = 0; i < as.length; i++) {
as[i].onclick = function() {
tbody.removeChild(this.parentNode.parentNode)
}
}
}
</script>
第八章
编写功能代码,具体代码如下:
<a id = "time"></a>
<button onclick = "clearInterval(time1)">停止</button>
<script type="text/javascript">
var time1 = window.setInterval('timeShow()', 1000);
timeShow()
function timeShow() {
var today = new Date();
var intYears = today.getFullYear();
intMonths = today.getMonth() + 1;
intDates = today.getDate();
intHours = today.getHours();
intMinutes = today.getMinutes();
intSeconds = today.getSeconds();
intWeeks = today.getDay();
years = intYears + '年';
intMonths < 10 ? months = '0' + intMonths + '月' : months = intMonths + '月';
intDates < 10 ? dates = '0' + intDates + '日' : dates = intDates + '日';
var week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
weeks = week[intWeeks] + ' ';
if (intHours == 0) {
hours = '00:';
} else if (intHours < 10) {
hours = '0' + intHours + ':';
} else {
hours = intHours + ":";
}
if (intMinutes == 0) {
minutes = '00';
} else if (intMinutes < 10) {
minutes = '0' + intMinutes;
} else {
minutes = intMinutes+ ":";
}
if (intSeconds == 0) {
seconds = '00';
} else if (intSeconds < 10) {
seconds = '0' + intSeconds;
} else {
seconds = intSeconds;
}
var timeString = years + months + dates + weeks + hours + minutes+seconds
document.getElementById('time').innerHTML = timeString;
}
</script>
单选题:
1.B
2.A
3.A
4.D
5.A
6.C
7.A
8.D
9.A
10.A
11.B
多选题:
31.ABCD
32.AC
33.BD
34.jq不考
35.BC
36.AC
37.BCD
38.不考
39.CD
40.CD
41.BD
42.