js中bool值转换以及逻辑运算&&、||、 !!的使用
js作为一门弱类型语言,导致几乎所有数据都能转换为bool的类型,js转换 规则 如下:
| 数据类型 | bool值转化 |
|---|---|
| Array | 数组类型都为true,包括[] |
| undefined | undefined 转化为 false |
| Object | null 转化为false,其他为 true,包括{}也为true |
| Boolean | false 转化为 false,true 转化为 true |
| Number | 0,NaN 转化为false,其他为 true |
| String | "" 转化为 false,其他为 true |
console.log(Boolean(NaN));//false
console.log(!!NaN);//false了解转换规则目的掌握逻辑运算符&&、||、 !!的使用,比如在很多时候,我们在函数中接受一个参数,如果参数不存在则赋予默认值,如下:
var a= arguments[0] || {} ;//第一个参数转换为false,则赋值为空对象{}一、&&的使用
a && b : 将a, b转换为Boolean类型, 再执行逻辑与, 如果结果是true返回b, false返回a
console.log(2 && 1);//输出1
console.log(1 && null);//输出null
console.log(undefined && null);//输出undefined
console.log('' && null);//输出''如果出现多个&&表达式一起运算时,返回第一个表达式运算为false的值,如果所有表达式运算结果都为true,则返回最右侧一个表达式运算的值。
二、||的使用
a || b : 将a, b转换为Boolean类型, 再执行逻辑或, 如果结果是true返回a, false返回b
console.log('' || 'abc');//输出abc如果出现多个"||"表达式一起运算时,返回第一个表达式运算结果为true的值,如果所有表达式运算结果都为false,否则返回最右侧的表达式的值。
三、!!的使用
!! a :将a强制转化为bool值的运算,运算结果为true或者false。
console.log(!!'abc');//输出 true
console.log(!!'');//输出 false本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!