var a = 100
var b = function() {
console.log(a)
var a = 1;
}
b()
var a = 100
var b = function() {
var a = 1;
console.log(a)
}
b()
第一段代码打印undefined 第二段代码打印1。 我的问题是第一段不应该打印1吗,因为赋值声明会提前于执行语句,即使不打印1应该打印全局a的那个值 100?
var a = 100
var b = function() {
console.log(a)
var a = 1;
}
b()
var a = 100
var b = function() {
var a = 1;
console.log(a)
}
b()
第一段代码打印undefined 第二段代码打印1。 我的问题是第一段不应该打印1吗,因为赋值声明会提前于执行语句,即使不打印1应该打印全局a的那个值 100?
我仅说第一段代码(相当于这样执行的):
var a = 100
var b = function() {
var a; //变量声明提升
console.log(a); //这时打印应为undefined
a = 1;
}
b()
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
3 回答829 阅读✓ 已解决
js执行顺序