JavaScript中的全局变量和窗口变量是什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScript中的全局变量和窗口变量是什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2032字,纯文字阅读大概需要3分钟。
内容图文
参见英文答案 > What’s the difference between a global var and a window.variable in javascript? 6个
我在W3Schools上发现了这些陈述.
使用JavaScript,全局范围是完整的JavaScript环境.
在HTML中,全局范围是窗口对象.
所有全局变量都属于window对象.
您的全局变量(或函数)可以覆盖窗口变量(或函数).
这些语句是否意味着全局变量和窗口变量基本相同?
我可以从另一个窗口访问一个窗口变量,因为它与窗口对象相关联,或者一旦我们导航到另一个窗口就删除了窗口对象?
还有这个:
任何函数(包括窗口对象)都可以覆盖全局变量和函数.
一个相关的例子如下:
<p>
In HTML, all global variables will become window variables.
</p>
<p id="demo"></p>
<script>
var carName = "Volvo";
// code here can use window.carName
document.getElementById("demo").innerHTML = "I can display " + window.carName;
</script>
什么是窗口对象/变量,它与全局对象/变量有什么不同?
我真的很困惑.任何人都可以用一个例子详细说明吗?
解决方法:
所有JavaScript代码都在某些环境中执行,最常见的是在浏览器中执行.执行的代码必须在称为全局上下文或全局范围的某个“根”范围内执行(将其视为主容器).在您的浏览器中,此“根”范围是窗口对象(每个选项卡/页面/ iframe的唯一窗口对象).
这就是为什么在示例中变量在全局范围内声明var carName =“Volvo”;您可以在窗口对象window.carName上访问此变量,因为在浏览“窗口”对象中是全局对象.
当您使用Node执行javascript时,例如,如果声明var carName =“Volvo”,则全局对象非常适合全局命名,并且在该环境中.您还可以使用global.carName访问变量(这仅适用于nodejs REPL,文件中的var声明不会附加到全局对象).
详细说明:
var myObject = { };
myObject.myVariable = 1;
console.log(myObject.myVariable); // logs 1
myVariable是在myObject上创建的,这是明确完成的.
var myVariable = 1; // behind the scenes this declerations is doing window.myVariable = 1;
console.log(window.myVariable); // logs 1
myVariable是在窗口对象上隐式创建的,在浏览器的上下文中,窗口对象是全局对象.
我希望这能澄清情况.
为了更好的解释,我强烈推荐这本书系列https://github.com/getify/You-Dont-Know-JS
专门针对这个问题https://github.com/getify/You-Dont-Know-JS/blob/master/scope%20&%20closures/README.md#you-dont-know-js-scope–closures
内容总结
以上是互联网集市为您收集整理的JavaScript中的全局变量和窗口变量是什么?全部内容,希望文章能够帮你解决JavaScript中的全局变量和窗口变量是什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。