我理解为什么可以显示具有全局范围的以下变量:
<script>
var carName = "Volvo";
myFunction();
function myFunction()
{
document.getElementById("demo").innerHTML = "I can display " + carName;
// I can display Volvo
}
</script>
但是,我无法理解为什么var
关键字会使以下2个代码段不同。
我可以看差异,但我不明白为什么会有undefined
,而另一个则可以访问。有人可以帮我理解这个区别吗?
<script>
myFunction();
document.getElementById("demo").innerHTML = "The type of carName is " + typeof carName;
// The type of carName is undefined.
function myFunction()
{
var carName = "Volvo";
}
</script>
<script>
myFunction();
document.getElementById("demo").innerHTML = "I can display " + carName;
// I can display Volvo
function myFunction()
{
carName = "Volvo";
}
</script>
答案 0 :(得分:3)
var
具有功能范围。如果您不使用它,它将在非严格模式下被隐含地置于全局范围内。