1、||(逻辑或)
例如:console.log( '' || 1) //返回的是1 注:在js逻辑运算中,-0、0、”“、null、false、undefined、NaN都会判为false
console.log( null || 0) //返回的是0
2.只要 ‘||’ 前面为true,不管 ‘||’ 后面的是true还是false,都返回 ‘||’ 前面的值
例如:console.log( 'hello' || 0) //返回的是hello
console.log( 'hello'|| 1) //返回的是'hello'
1、&&(逻辑与)
1.只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;
例如:console.log( 0 && ‘abc’) //返回的是0
console.log( 0 && null) //返回的是0
2.只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;
例如:console.log( ‘abc’ && null) //返回的是null
console.log( ‘abc’ && 2) //返回的是2
实际中的运用
需求:当num值为0的时候,txt的值为起步,当num值为1的时候,txt的值为第一步
当num值为2的时候,txt的值为第二步,当num为其它的时候,txt的值为结束
let num = 0;
let txt = ''
第一种方法:
if (num === 0 ) {
txt = '起步'
} else if (num === 1) {
txt = '第一步'
} else if (num === 2) {
txt = '第二步'
} else {
txt = '结束'
}
第二种方法:
switch (num) {
case 0:
txt = '起步'
break
case 1:
txt = '第一步'
break
case 2:
txt = '第二步'
break
default :
txt = '结束'
break
}
第三种方法:使用与或非的方法
let txt = (num === 0 && '起步') || (num === 1 && '第一步') ||
(num === 2 && '第二步') || '结束'
第四种方法:
let txt = num === 0 ? '起步' : num === 0 ? '第一步' :
this.val === 0 ? '第二步' : '结束'
第五种方法
let txt = {'0': '起步', '1': '第一步', '2': '第二步'}[num] || '结束'
以上五种方法,第一种和第二种可读性强,后面几种简洁