JS中逻辑运算符|| &&的特殊技巧
装逼必备。
基本用法
1 | console.log(true && true); //true |
JavaScript中的特殊用法
设置默认值
1 | var target,num; |
上面的写法相当于这样写:
1 | var target,num; |
不过我现在已经放弃这种写法,因为ES6中有更为简便的写法。
判断参数是否存在,存在则怎样怎样。
eg:判断回调函数是否存在,存在则执行。1
callback && callback();
为什么会有这样的特殊用法(原理)
在JavaScript中,
Object、Function、非零整数和字符串都为true,而undefined、null和空字符串""为false,而且返回为true表达式的值。如果||左侧表达式的值为真值,则返回左侧表达式的值;否则返回右侧表达式的值。
eg:1
2console.log('真值' ||'') //真值(这里的真值指的是上面所说的返回true的值)
console.log(undefined || Object); //Object
- 如果&&左侧表达式的值为真值,则返回右侧表达式的值;否则返回左侧表达式的值。
eg:1
2console.log(1 === 1 && 2); //2
console.log(0 === 1 && 2); //2
小结
在JavaScript中,
Object、Function、非零整数和字符串都为true,而undefined、null和空字符串""为false,而且返回为true表达式的值如果||左侧表达式的值为真值,则返回左侧表达式的值,否则返回右侧表达式的值。
如果&&左侧表达式的值为真值,则返回右侧表达式的值,否则返回左侧表达式的值。
eg:
简化javascript中if else选择结构
1 | var n = 1; |