JS一些有趣的知识

一、变量提升

console.log(a); //undefined    
var a = 0;

以上代码段并不会报错,js中存在变量提升,会将变量的声明提升至文件的顶部,形式如下。

var a;
console(a);
a = l;

二、label

var a = 0;
loop:
for(let i=0;i<10;i++){
    for(let j=0;j<10;j++){
        a++;
        break loop;
    }
}
console.log(a); //1

以上loop为一个label,label多用来break或continue跳出代码块。

三、null与undefined

null与undefined在if语句中被转换为false。

null是一个表示为“空”的对象,它的出生较早(1995),根据C语言的传统,可以自动转换为0.

Number(null); //0
null+5; //5

undefined表明此处无定义的原始值

Number(undefined); //NaN
undefined+6; //NaN

如果JavaScript预期某个位置应该是布尔值,以下值会转换为false: undefined, null, false, 0, NaN, ""或''(空字符串);而其他值都是为true.

猜你喜欢

转载自www.cnblogs.com/popcornya/p/JS.html