说明
|| 逻辑或运算符,常用来初始化函数的参数,如果没有传递形参,就赋默认值
原理
console.log(0||1); // 0表示false,返回 || 后面的值
console.log(2||1); // 2表示true,返回 || 前面的值
console.log(''||'b'); // ''表示false,返回 || 后面的值
console.log('a'||'b'); // 'a'表示true,返回 || 前面的值
console.log(0||''); // 0 和 '' 都是false,也直接返回|| 后面的值
console.log(''||0); // '' 和 0 都是false,也直接返回|| 后面的值
执行结果:
1
2
b
a
// 空字符串
0
总结:
- 只要
||前面为 false,直接返回||后面的值 - 只要
||前面为 true,直接返回||前面的值
初始化参数
function test(options){
console.log("options:",options)
// 如果 options 是空,即:表示false,就执行 || 后面的部分,即:options = { },给option是赋值对象
options || (options = { })
console.log("options:",options)
// 如果 options 中没有 name属性,或name的值是空,就执行 || 后面的部分,给name赋值 ''
name = options.name || ''
console.log("name:",name)
}
调用时没有传值
test()
参考:
https://www.runoob.com/w3cnote/javascript-or-and-and.html