日期:2014-05-16  浏览次数:20380 次

{{JS}}JS中准确获取undefined的方法
{{JS}}关于undefined的一点认识

JS中有一个特殊值undefined,在使用一个并未声明的变量时或者使用已经声明但还没有赋值的变量时,又或者使用一个并不存在的对象属性时返回的就是这个值.有点类似null,但与null相比二者有一重要区别:
    undefined不是Javascript保留字,直到ECMAScript v3才规定名为undefined的全局变量,它的初始值为undefind.
言下之意,完全可以重新赋值给undefined,如下
undefined = 1;
alert(undefined); // 1


所以为了保证undefined值不被覆盖,可使用如下3种技巧:
1.(function() {
    var undefined;  // 只声明这个变量但不初始化它就可以确保它的值为undefind
})();

2.(function(undefined){

})();   // 调用闭包函数时没有传参从而保证undefined值,这个技巧在jQuery中使用到,如下

(function( window, undefined ) {

})( window );


3.使用void明确生成undefined值.
var a = void 0;