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;
 
(0)
上一篇 2021年5月31日 下午5:59
下一篇 2021年5月31日 下午6:13

相关推荐

发表回复

登录后才能评论