短路运算符 || &&

短路运算符||和&&

逻辑或 || : 

let test = xxx || 3  //

    简单来讲就是 如果||左边 转换为布尔值 为 false 那么 test的值就等于 || 的右边,否则是左边;

逻辑与 && :

 let color = xxx && "#fff";

    如果 &&左边的 转换为布尔值 为true 那么 test值就等于 &&号右边的值, 如果&&左边为false 那么就把 就把他的结果显示出来如 null undefind 0 等;

    

 var oooooooo = "" ;//null,undefined,NaN,0
        var test = oooooooo&&2;
        console.log(test);

自我总结:

    在实际项目中 在自己写方法的时候 判断变量的时候经常用 ||

function(xx1,xx2,xx3){
   var aa1 = xx1 || "aa1";
   var aa2 = xx2 || "aa2";
   var aa3 = xx3 || "aa3";
}

但是由于js的参数没有个数限制,如果我只想传xx3,不想传xx2 那么就会遇到, ("aa", "","aa3"),这样的写法 才能满足我的要求,好蠢...,

后来就改用

function xxx(options) { 
            if (options.hasOwnProperty("asdads")) {
                var xx = options.asdads || "xxx";
            }
         }

 ,在写表单验证的时候 就是用的这种写法 结果写了 一大坨,很是麻烦.由于并没有看过 很多js源码,和程序设计书籍,以后看看有没有什么好的方法吧

今天学习的时候 看到这种写法(由于以前没用过&& 今天使用的时候感觉有点意思,不过在整理笔记的时候发现跟三元运算符有点相似)

 options && options.color || '#d85030'; //options 成立,如果 options.color 也成立 那么就是options.color 否则就是 "#d", options 不成立直接就是"#d"
  var aa = option? option:"#asd"; // 有些许的相似之处

以后在用js写方法中 会尝试 对这三种写法混用,

ps 第一次用csdn 写笔记 ....很麻烦.

                                                                                                                                                





猜你喜欢

转载自blog.csdn.net/a578024797/article/details/80740107