我试图理解下面的java脚本代码是如何工作的。我有一个名为 color 的全局变量,它存储“蓝色”;我调用 printColor() 来简单地打印颜色。 我不明白的是,当我在函数中定义一个名为 color 的新局部变量时,为什么颜色未定义。如果取消下面局部颜色变量声明的注释, 颜色未定义。
var color = 'blue';
printColor();
function printColor(){
document.write(color);
//var color = "green";
}
最佳答案
您正在 printColor()
函数中重新声明变量颜色,因为该声明实际上被提升到顶部,它会在函数开始时覆盖它,因此您会看到 undefined
var color = 'blue';
function printColor(){
document.write(color);
//var color = "green";
}
printColor();
但如果你这样做:
function printColor(){
document.write(color); //undefined
var color = "green";
console.log(color); //shows green
}
关于Javascript 变量范围 - 变量未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24444076/