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)
