js练习题第3天 答案及解析

本篇文章是js基础练习题第三天的答案及解析部分,纯题目部分请移步js基础练习题 第3天

正文

1.

1
2
3
4
var exerOne = false; 
if (exerOne = true) {
exerOne = true;
}
执行以上代码后,exerOne 的值为______________。

答案:true

注意第2行中的=为赋值操作


2.
1
2
3
4
5
6
7
8
9
10
11
var weekday =  new Date().getDay();
switch(weekday){
case 0: weekday = "星期天";
case 1: weekday = "星期一";
case 2: weekday = "星期二";
case 3: weekday = "星期三";
case 4: weekday = "星期四";
case 5: weekday = "星期五";
case 6: weekday = "星期六";
default: weekday = 'unknown';
}
执行以上代码后,weekday 的值是____

答案:unknown

switch循环中的case语句后若不添加break,则每个case都会执行,返回的内容取决于最后一个语句


3.给定一个变量,如何检测它是否为 NaN ?

答案:NaN是唯一一个自身与自身不相等的值,利用if(name !== name)如果结果为真,则证明该值为NaN。

利用isNaN()函数,可以更准确的检测。

关于isNaN()Number.isNaN()的区别,点击这里


4.
1
2
3
4
5
6
7
8
9
var array=[];
for (var i = 0; i < 5; i++) {
if (i == 2) break;
array.push(i);
for (var j = 0; j < 5; j++) {
if(j == 2) continue;
array.push(j);
}
}
执行完这段程序,array 的结果为______________。

答案:[0, 0, 1, 3, 4, 1, 0, 1, 3, 4]

break语句是退出整个循环,而continue语句是退出当前循环而进入下一次循环


5.
1
2
3
var foo = function bar() { 
return 12;
}
执行完这段代码后,请问:

typeof(foo) = ______________;

typeof(foo()) = ______________;

typeof(bar) = ______________;

typeof(bar()) = ______________。

答案:function、number、undefined、报错(ReferenceError)

在此题中,foo才是函数名。执行typeof(foo())得到的是foo函数的返回值,如果没有返回值,则为undefined


6.
1
2
3
4
5
6
7
8
var a, b;
(function() {
var a = b = 5;
alert(a);
alert(b);
})();
alert(a);
alert(b);
执行程序,依次弹出的值为______________、______________、______________、______________。

答案:5、5、undefined、5

该题目考查了js变量定义及作用域的概念。在立即执行函数内部定义var a = b = 5;实际上相当于执行

1
2
3
b = 5;
var a;
a = b;

故在函数外部的变量b也同步修改了,而函数外部的变量a未被修改


7.
1
var array = new Array(0x17);
Number(array); 的结果是_______,array.length; 的值是_______。

答案:NaN、23

js会根据在Array构造函数中传入的参数值n确定数组的初始长度为n0x17为十六进制,转换为十进制为23。对数组调用Number()方法,会先将该数组转为会string类型,再转换为number类型。

说明

  1. 题目中出现的JS指的是采用ECMAScript 2015及之后标准的JavaScript
  1. 答案中,若有错误和需完善的地方,可在下方留言反馈哈~~

  2. 查看纯习题版,请点击js基础练习题 第3天

--本文结束 感谢阅读--
创作十分不易,原创更应鼓励