短路运算符 || &&
程序员文章站
2022-05-13 19:56:29
...
短路运算符||和&&
逻辑或 || :
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 写笔记 ....很麻烦.