声明提升:函数声明和变量声明总是被编译器提升到方法体的开头,这意味着变量可以先声明后使用。
由于语句传播,示例1不会报错,并且会输出与示例2相同的结果,因为示例1在编译器中的实际执行顺序是示例2
// 例1
x = 5;//初始化
console.log(x);
var x;//声明
// 例2
var x;
x = 5;
console.log(x);
需要注意的是,声明会提升,但初始化不会提升,它的使用是在初始化之前,此时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;
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。