JavaScript提升和功能范围之间的混淆
如果我没有错误var生命是功能范围,因为它在函数sandeep()中。 但是如果我在console.log(lives)之外的函数之上,那么我仍然会得到控制台的结果 - 新德里为什么? 谁能帮我。 (这是因为吊装吗?它移到顶部......)
没有var的屏幕截图定义里面的功能
使用var内部函数进行屏幕截图
屏幕截图 - 在函数调用后编写console.log现在它给出了未定义的
我得到了我的答案 - 这是我的错误,我的浏览器没有正确刷新。 感谢每一个人的答案。
console.log("Lives become global variable " + lives);
function sandeep() {
lives = "New Delhi";
return lives;
}
sandeep();
你对这个事实是对的
var life是功能范围
但是你没有在函数中声明变量。 你需要使用var lives = "New Delhi"
以便它的范围只在它声明的函数中。
如果您直接分配lives = "New Delhi"
,它将被分配给全局window
对象。 打开浏览器控制台,试试这个。
a = 1
然后window.a
你会发现那个window.a
是1
。
让我知道它是否有帮助。
如果我没有错,var生命是功能范围
这是正确的,但你忘了var
在生命面前。 如果你将它定义为一个变量,你会得到一个错误:
console.log("Lives become global variable " + lives);
function sandeep() {
var lives = "New Delhi";
return lives;
}
sandeep();
链接地址: http://www.djcxy.com/p/96283.html
上一篇: Bit confused between JavaScript Hoisting and Functional Scope
下一篇: AngularJS scope bug? Different results on chrome(43) and firefox(38.0.5)