代码之家  ›  专栏  ›  技术社区  ›  RameshVel

当javascript返回空值和未定义时?

  •  17
  • RameshVel  · 技术社区  · 15 年前

    我使用javascript已经有几年了,从来没有注意到 null 和; undefined 早点,我总是用 未定义 验证对象是否存在。

    但最近我通过了 this article . 他们在这里说

    javascript区分了“空”和“未定义”两种类型的对象,前者表示有意的非值,后者表示“未定义”类型的对象,表示尚未初始化的值,也就是说,尚未分配值。稍后我们将讨论变量,但在JavaScript中,可以声明一个变量而不给它赋值。如果这样做,则变量的类型是未定义的。

    我现在完全困惑了,到底什么是不值钱的。这个非值与 未定义 . javascript返回的情况是什么 无效的 .

    我试过下面的样品

    var sam;
    alert(sam);  // returns undefined
    

    try {
        //var sam;
        alert(sam);  
    } catch(ex) { }   // exception says: sam is undefined
    

    我不确定JS何时返回空值。有人能给我澄清一下吗?

    4 回复  |  直到 10 年前
        1
  •  14
  •   bobince    15 年前

    undefined

    window

    alert(window.sam);      // undefined
    alert(window['sam']);   // undefined
    alert('sam' in window); // false
    alert(sam);             // ERROR
    

    sam window.sam

    var sam;
    alert(window.sam);      // undefined
    alert(window['sam']);   // undefined
    alert('sam' in window); // ** true
    alert(sam);             // ** undefined
    

    null

        2
  •  2
  •   Robert Cabri    15 年前
    <script type="text/javascript">
    // variable with an unasigned value
    var a;
    if (a == undefined) {
      alert('a is undefined');
    }
    
    if (a == null) {
      alert('a is undefined');
    }
    
    // this will produce an error
    if (b == undefined) {
      alert('b is undefined');
    }
    
    // this is the right way to handle not defined variables
    if (typeof(c) == 'undefined') {
      alert('c is blabla');
    }
    </script>
    
        3
  •  2
  •   AnthonyWJones    15 年前

    null undefined

        4
  •  1
  •   Tinister    15 年前