如果 selector ,name =null 或者undefined 的时候
就给 || 符号后面那个值

解决方案 »

  1.   

    参见:利用运算符优先级实现ifelse表达式
      

  2.   

    其返回值为逻辑值??
    请看这里
    https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Operators/Logical_Operators
      

  3.   

    jack:你说的不错,而我的问题也正是如此:为什么会返回后面那个值而不是一个逻辑值?
    风之石:按照那篇文章的意思,似乎的确应该是返回一个逻辑值的。而事实并非如此。
    “||”运算符使用下面的规则来把非 Boolean 值转换为 Boolean 值: 
    ·所有对象都被认为是 true。 
    ·字符串当且仅当为空时才被认为是 false。 
    ·null 和未定义的均被认为是 false。 
    ·数字当且仅当为 0 时才是 false。 那么,
    selector = selector || document;
    这一句,如 selector 未定义,则selector 为 false,document 为 true,那么最后即 selector 的值应为 true ,而不应该是 document
      

  4.   


    恩,那篇文章直接来看确实是存在一定的歧义。如果将返回值由false,true更改为expr1和expr2,那就和cloudgamer贴的文章描述一致了!当然,那篇文章的主题是“利用运算符优先级实现if else表达式”,只是将所有返回值都做了true和false判断而并没有去使用该值,相信,这也是合理的。 ^_^