什么是var x = x

这个问题在这里已经有了答案:

  • 什么是“var FOO = FOO ||” {}“(分配一个变量或一个空对象的变量)意味着在Javascript中? 7个答案

  • || 是逻辑OR

    表达方式

    var x = x OR {};
    

    应该变得更明显了。

    如果x有一个虚假值(如nullundefined0"" ),我们将x赋给一个空对象{} ,否则只保留当前值。 这个长版本看起来像

    var x = x ? x : {};
    

    如果x未定义(或null或任何其他false值),则它变为空对象。


    一个人不应该写“var x = x || {};” 本身。

    这与“var x = {}”不相同的唯一情况;“ 是当x在先前在相同范围内初始化时。 这是不道德的。 注意:

    function() {
      x = {foo:"bar"};
      var x = x || {};
    }
    

    是一样的,只是比较混乱,

    function() {
      var x = {foo:"bar"};
      x = x || {};
    }
    

    在任何情况下,全球范围内都没有提及符号“x”的值。

    这个表达式是合法的懒惰属性初始化习语的混淆变体:

    function( foo ) { 
      foo.x = foo.x || {};
      foo.x.y = "something";
    }
    
    链接地址: http://www.djcxy.com/p/95275.html

    上一篇: What does var x = x

    下一篇: Simple Media query rules change on page refresh