欢迎光临散文网 会员登陆 & 注册

你不知道的undefined:

2021-05-15 02:12 作者:刂C刂C刂  | 我要投稿
  1. undefined 即是一个原始数据类型,也是一个原始值。

  2. undefined  是全局对象上的一个属性 window.undefined

    console.log( window.undefined );
    // undefined

  3. 不可写    writable: false

    window.undefined = 123;
    console.log( undefined );
    // undefined

  4. 不可配置    configurable: false

    delete window.undefined;
    console.log( undefined );
    // undefined

  5. 不可枚举   enumerable: false

    for( var k in window) {
       if( k === undefined) {
           cosole.log( k );
       }
    }
    // 没有输出

  6. 不可重新定义:

    Object.definProperty(window, 'undefined', {
       writable: true,
       enumberable: true,
       configurable: true
    })
    // 结果报错

  7. 系统会给未赋值的变量自动赋值为: undefined

    var a;
    console.log( a );
    // undefined

  8. 函数没有返回值的时候,系统会自动给函数返回:undefined

    function a () {
       console.warn('123')
    }
    console.log( a() );
    // undefined

  9. 在全局作用域下: window.undefined 不可写,但是局部作用域下可以重新赋值

    var undefined = 1;
    console.log( undefined );
    // undefined

    function test() {
       var undefined = 1;
       console.log( undefined )
    }
    test();
    // 1


    // 原因在于,undefined并不是js的关键字。

    由于在局部作用域中,undefined可以作为变量名重新赋值,所以我们在局部作用域中使用 undefined这个值时,最好用 void(0) 或者 window.undefined 代替。  void(0) 是直接返回一个undefined值,效率还要优先于 window.undefined 的查找。


你不知道的undefined:的评论 (共 条)

分享到微博请遵守国家法律