全局作用域中的var someVariable和JavaScript中的window[“someVariable”]之间
difference between var someVariable in Global scope and window["someVariable"] in JavaScript
可能的重复项:
Javascript 全局变量
我应该使用 window.variable 还是 var?
问题:定义全局变量的两种方法:
-
var someVariable
全球范围; -
window["someVariable"] = “some value”;
有什么区别?
在我的测试中,这两种方式在IE中有所不同(从IE6到IE8)。(IE9 没问题)你可以在我的博客中查看它:ie-nameing3.html,或者运行以下代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Test naming in IE6</title>
<style type="text/css">
</style>
<script type="text/javascript">
window.foo = window.foo || {};
foo.eat = function(){
alert("ie6");
};
</script>
</head>
<body>
<div id="container">
</div>
<script type="text/javascript">
alert(typeof window.foo.eat);
</script>
<!-- <script type="text/javascript" src="./ie6-naming.js"></script> -->
<script>
// alert(typeof window.foo.eat);
var foo = foo || {};
alert(typeof foo.eat);
</script>
</body>
</html>
任何想法都值得赞赏!
编辑:
问题是:运行代码,你会得到两个警报:第一个显示"函数",第二个显示"未定义",为什么?
在全局范围内没有区别, 在闭包或函数中,它会有所不同:
(function() {
var a = 1;
})();
alert(a); //doesn't work
(function() {
window.a = 1; // or a = 1; (w/o the var) but not recommended (see comments)
})();
alert(a); //works!!
相关文章:
- 正在寻找比$(document).ready慢的$(window).load的替代方案
- 直接下载文件,而不是从window.open(url)
- $window.ga在AngularJS事件中未定义
- 如何将PDF作为二进制文件传递到window.open()
- window.onload没有'无法在Android WebView中工作
- window.location替换并传递URL历史记录条目中的变量
- window.on.scroll事件未启动
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 为什么window.open不打开一个以变量形式给出的链接
- window.location使用jquery mobile实现chrome跳转
- window.opener.document在ie中不起作用
- window.onpopstate不工作;当我导航回页面时,不会发生任何事情
- 未捕获的类型错误:topFrame.window.changeSelectedBarStyle不是函数,原因是什么
- 通过window.opener将弹出窗口中的值传递给父窗口
- Jquerymobile手机.变更页转换:someVariable
- $(document).height和$(window).heaght都返回相同的值-使用的是正确的doctype
- 如何在`window.open`之后执行回调
- Windows.Open 在 window.Location 工作时不起作用
- javascript window.open将无法在Chrome控制台上工作
- 全局作用域中的var someVariable和JavaScript中的window[“someVariable”]之间