JS的声明提升

声明提升:函数声明和变量声明总是被编译器提升到方法体的最顶部,也就是说变量可以先声明再使用。
由于声明提升,例1不会报错而且会输出和例2一样的结果,因为在编译器中例1实际的执行顺序是例2

// 例1
x = 5;//初始化
console.log(x);
var x;//声明
 
// 例2
var x;
x = 5;
console.log(x);
 

需要注意的是声明会提升但初始化不会提升
例3和例4会输出:x的值为5,y的值为:undefined
因为在编译器中y的声明被提升,而它的使用在初始化之前,此时y是一个无值的变量即undefined

//例3
var x = 5;
console.log('x的值为:%s,y的值为:%s',x,y);
var y = 7;
 
// 例4
var x = 5;
var y;
console.log('x的值为:%s,y的值为:%s',x,y);
y = 7;
 

原创文章,作者:我心飞翔,如若转载,请注明出处:https://www.pipipi.net/14778.html

发表评论

登录后才能评论