在别人代码里看见一个   n = n || 1 当 n=1  时  n || 1 值为 1 , 当n=2时  n || 1  值为2这是怎么算的?符合什么条件时 值是 n的值 ,什么条件时 值是后面1的值?

解决方案 »

  1.   

    https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Operators/Logical_Operators
    看这里
      

  2.   

    JScript 使用下面的规则来把非 Boolean 值转换为 Boolean 值:    * 所有对象都被认为是 true。
        * 字符串当且仅当为空时才被认为是 false。
        * null 和 undefined 被认为是 false。
        * 数字当且仅当为 0 时才是 false。 || 的意思的逻辑或当第一个表达式的值为true时,不考虑后面的第二个表达式的值,直接返回第一个表达式的值
    所以
    当 n=1 时 n || 1 值为 1 ,这里的1 是第一个表达式的值
     当n=2时 n || 1 值为2
      

  3.   

    应该是这样的,原理和二楼说的一样当n=0时,值是后面的1;
    当n!=1时,值是n;
    可以试试验证一下
      

  4.   

    他这表达式的意义是设默认值呢~意思就是没值的时候取1;因为n有值的话n=n是没有任何意义的~ 这也可以改用三目运算符来写~n=n?n:1一个意思~只是n = n || 1||与|的不同就是前面的表达式为真的话~后面的代码直接忽略执行!
      

  5.   

    谢谢各位cloudgamer 的文档 我看了  意思搞懂了zhouxiaobo123 写的 是对文档的中文解释  很明了  谢谢同样感谢其他几位的回答结贴!