d---
NaN是什么? 有什么特别之处?
NaN
简单的理解是:NaN是一个数值,但具体不知道是多少
我们先用typeof看看NaN的数据类型可以验证其数据类型
typeof NaN
"number"
特点
NaN 与其他数值进行比较的结果总是不相等的,包括它自身在内。
因此,不能与 Number.NaN 比较来检测一个值是不是数字,而只能调用 isNaN() 来比较。
break与continue有什么区别?
break和continue语句用于在循环中精确控制代码的执行
- break
用于强制退出循环体,执行循环后面的语句 - continue
用于退出本次循环,执行下次循环
switch case 语句中的 break 有什么作用?
如果表达式等于case的值,对应的语句就会执行,break关键字会使程序跳出switch语句
以下代码的输出结果是? 为什么
var a = 1;
var b = 3;
console.log( a+++b );
- 输出结果
结果为4 - 原因
主要判断a+++b
的具体执行顺序,根据运算符优先级可知,++
运算符优先级高于+
,且自增的后置运算符的优先级高于前置运算符,所以执行顺序应为(a++)+b
遍历数组,把数组里的打印数组每一项的平方
var arr = [3,4,5]
解题如下,使用for in
的方法
var arr = new Array(3, 4, 5)
for(var item in arr) {
console.log(arr[item]*arr[item]);
}
以下代码输出结果是? 为什么?
var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val)
输出为number2 // (typeof 2)+(b||c>0)
var d = 5;
var data = d ==5 && console.log('bb')
console.log(data)
输出bb // (d==5)&&(console.log('bb'))
var data2 = d = 0 || console.log('haha')
console.log(data2)
输出haha // 0||console.log('haha')为'haha',赋值给d,再赋值给data2
var x = !!"Hello" + (!"world", !!"from here!!");
console.log(x)
输出2 // !!"Hello"为true, (!"world", !!"from here!!")也为true,两true相加转换为数字1+1,得2
关于 if(xx)和 a==b的判断
博客再补,通过学习,简单的总结就是:
- if(xx) 应当把xx转换成布尔值之后判断
- xx == xx 应当把xx转换成数字进行比较判断
其中有一些特殊的东西: -
NaN === NaN
为false
- 空字符串转布尔值为
false
,其他字符串为true
参考文章
JavaScript NaN属性|W3School
JavaScript 遍历数组的方式for循环&for in|脚本之家