有关window.undefined=window.undefined写法的理解
来源:互联网 发布:虚拟定位 源码 编辑:程序博客网 时间:2024/06/04 19:05
在jquery中我们见到window.undefined=window.undefined的写法,今日又在ext中见到window["undefined"]=window["undefined"],对其写法非常不理解,将自身赋给自身有什么意义,在网上狂搜一番也没有明确的解释,后来看到ext注释写了这么一句:for old browsers,很明显是为了兼容老的浏览器,思虑半天,似乎有了些理解。
// Global undefined variablewindow.undefined = window.undefined;
这句代码是什么意思呢?查阅了很多文档,才知道。
早期的浏览器undefined并不是全局变量,也就是说你不可以写像下面的代码来判断一个变量是不是undefined
if (a == undefined) { alert('a is undefined!'); }
你必须写成
if (typeof( a )== 'undefined') { alert('a is undefined!'); }
这样判断很麻烦的。所以window.undefined = window.undefined这句代码就是把undefined设为全局变量。
window本来是没有undefined属性的,所以window.undefined的值就是undefined,把undefined赋值给window.undefined属性,undefined就变成全局变量了。
现在的浏览器都没有这个问题了,估计这个是针对IE 6以前的浏览器。
在较老的浏览器中,如IE5之前的浏览器,undefined并不是window对象的一个子对象,并不是一个已实现的系统保留字,而是代表一个未定义类型,除了直接赋值和typeof()之外,其它任何对undefined的操作都将导致异常。如果需要知道一个变量是否是undefined,只能采用 typeof()的方法:如var v;if (typeof(v) == 'undefined') {// ...}。如果使用if(a==="undefined")则会报“undefined未定义”的错误。
因此为了兼容IE5及之前的浏览器,我们可以使用一些方法来解决这个问题。本文前面说到的就是其中一种方式。window.undefined=window.undefined; 咋一看很难理解,写法有点bt,但理解一下就不觉得奇怪了,在较早的浏览器中因为window.undefined不存在所以会返回undefined,将此赋给等号前的window.undefined这样后面就可以直接使用if(a==="undefined")的判断方式了。在新版本的浏览器中 window.undefined=undefined;因此不会造成什么负面影响。
除了使用window.undefined=window.undefined和window["undefined"]=window["undefined"]外,还有很多别的办法来实现对IE5及之前浏览器的兼容,如
var undefined = void null; /oid函数永远返回undefinedvar undefined = function(){}();var undefined = void 0;
只要等号后的表达式返回undefined即可
- 有关window.undefined=window.undefined写法的理解
- 有关window.undefined=window.undefined写法的理解(Ext2学习总结)
- JS 关于(function( window, undefined ) {})(window)写法的理解
- JS中关于(function( window, undefined ) {})(window)写法的理解
- 关于(function( window, undefined ) {})(window)写法的理解
- 关于(function( window, undefined ) {})(window)写法的理解
- JS 关于(function( window, undefined ) {})(window)写法的理解
- JS 关于(function( window, undefined ) {})(window)写法的理解
- JS 关于(function( window, undefined ) {})(window)写法的理解
- window.undefined=window.undefined
- 前段百科---JS中形如(function(window, undefined) {})(window)写法的理解
- (function (window, undefined){})(window)
- jQuery 1.4.4 中 function( window, undefined ) 写法原因(function( window, undefined ) {})(window);
- query 中 (function( window, undefined ) {})(window)写法详解(转)
- jquery 中 (function( window, undefined ) {})(window)写法详解(转)
- (function (window, undefined){})(window)
- function( window, undefined )含义
- window undefined 被赋值问题
- 多少恋人像这360°旋转的爱情,结束在开始的地方
- Linux权限
- Visual Studio shortcut keys
- Could not find a getter for salesName in class
- Winform动态调用Webservice的方法
- 有关window.undefined=window.undefined写法的理解
- js模拟点击事件
- 长度为0的数组——C语言的非标准用法之一
- R中因子分析的得分计算
- 第九周任务1—分段函数求值问题
- ExtJS ComboBox同时加载远程和本地数据
- inno setup介绍
- segmentation fault----在Linux下真是一个蛋疼的错误,总结一下出现这错误的经历
- 关于Microsoft Speech SDK 中TTS的研究