在网上看到这么一种写法:
(a.event.OrderValue || "").localeCompare(b.event.OrderValue)请问大神 (a.event.OrderValue || "") 这句话里或上一个空字符串有啥意义呀

解决方案 »

  1.   

    a.event.OrderValue不传值的时候,就默认为空
      

  2.   

    a || b
    这个表达式  如果 a 的值判定是true  则返回a  否则返回 b
    a.event.OrderValue || ""
    这样保证返回的是一个字符串(即使是空的“”)  因为如果左面是null的话 直接操作可能会报错
    换句话说 这样保证把 空值(null undefinded) 转换成空字符串
      

  3.   

    && || 断路运算。js 常用function(a){
    a=a||0;
    ==>
    a = a?a:0;
    }b && (b=1); 
    ===>
    if(b){b=1;}
      

  4.   

    这个写法甚至可以执行一些简单的if判断逻辑:
    例如
    (function main(){
    true || alert(1);
    false || alert(3);
    })()