1.输出多少
alert(typeof(NaN))
:NaN非数字,一种特殊的number
alert(typeof(undefined))
:undefined
alert typeof(null)
:object
alert typeof(object)
:function
2.输出多少(几秒输出几)
涉及到setTimeout是异步执行的和js的闭包特性,循环的时候它会先计算i的值,然后才进行alert
假如把var换成let,那么输出结果为0,1,2;
因为let i 的是区块变量,每个i只能存活到大括号结束,并不会把后面的for循环的 i 值赋给前面的setTimeout中的i;而var i 则是局部变量,这个 i 的生命周期不受for循环的大括号限制;
for (var i=0;i<3;i++){
setTimeout(function(){
alert(i)
},1000*i)
}
3.输出多少
i<6,j<10条件都要执行,不执行完毕不跳出
var x;
for (var i=0,j=0; i<6,j<10; i++,j++){
x=i+j;
}
alert(x)
4.输出多少
作用域、变量提升性
作用域:先在内部找,如果内部找不到,向外查找
优先级:变量>函数>参数>提升
var bar=1;
function test(){
console.log(bar);//undefined
var bar=2:
console.log(bar);//2
}
test();
5.输出多少
变量最大
var foo=function(){
console,log(1);
}
function foo(){
console.log(2);
}
foo();