NaN是什么? 有什么特别之处?
NaN是Not a Number的缩写,即非数值。是一个特殊的数值,用来表示一个本来要返回数值的操作数未返回数值的情况,来代替报错。
- 任何涉及NaN的操作都会返回NaN。
- NaN与任何值都不相等,包括NAN本身。
break与continue有什么区别?
- break 用于强制退出循环体,执行循环后面的语句
- continue 用于退出本次循环,执行下次循环
for(var i = 1; i< 10; i++){
if(i % 4 === 0){
continue;
}
console.log(i); //1,2,3
}
for(var i = 1; i< 10; i++){
if(i % 4 === 0){
continue;
}
console.log(i); // 1,2,3,5,6,7,9
}
switch case 语句中的 break 有什么作用?
switch中的break语句确保程序立即从相关的case子句中跳出 switch 并接着执行 switch 之后的语句。若 break 被省略,程序会继续执行 switch 语句中的下一条语句。
以下代码的输出结果是? 为什么
var a = 1;
var b = 3;
console.log( a+++b );
输出4。后置自增运算符(++)优先级>前置自增运算符(--)>加法运算符(+),故a+++b=(a++)+b,输出4。
遍历数组,把数组里的打印数组每一项的平方
var arr = [3,4,5]
var arr = [3,4,5];
for (var i = 0; i < arr.length; i++){
console.log(arr[i]*arr[i]) //9,16,25
}
以下代码输出结果是? 为什么
var a = 1, b = 2, c = 3; var val = typeof a + b || c >0 console.log(val)
输出“number2”。因为typeof优先级最高,其次是“+”号,其次是">",最后是“||”。typeof a
+b得到“number2”,转换成boolean为true,由于逻辑运算符的“短路”特性,故直接输出“number2”.
var d = 5; var data = d ==5 && console.log('bb') console.log(data)
输出“bb undifined”。"=="号优先级大于逻辑与“&&”,“d == 5”得到true,由于逻辑与的特性,故继续执行console.log('bb'),得到输出“bb”。由于console.log本身返回undifined,故输出“undifined”。
var data2 = d = 0 || console.log('haha') console.log(data2)
输出“haha undifined”。“||”优先级大于赋值“=”。0转换为boolean值为false,根据逻辑或的特性,继续向下执行console.log('haha'),输出“haha”,由于console.log本身返回undifined,故输出“undifined”。
var x = !!"Hello" + (!"world", !!"from here!!"); console.log(x)
输出2。括号优先级最高,根据有逗号则执行所有内容并返回逗号后面的一项,故(!"world",!!"from here!!")返回!!"from here!!"。又因为逻辑非“!”返回boolean类型,故返回true。故!!"hello"也返回true。x = true + true = 2,故最终返回2。