共计 1641 个字符,预计需要花费 5 分钟才能阅读完成。
布尔操作符
逻辑非(!
)
将操作数(任何数据类型)转换为一个布尔值,并求反。
!null; // true | |
!undefined; // true | |
!true; // false | |
!false; // true | |
!0; // true | |
!NaN; // true | |
!1; // false 除 0 和 NaN 以外的任何 Number 类型,此操作都会返回 false | |
!""; // true | |
!"s"; // false 任何非空的 String 类型,此操作都会返回 false | |
!Symbol(); // false |
连续使用两个 !
可达到 Boolean()
函数同样的效果。
!!null; // false | |
// ... |
逻辑与(&&
)
属于短路操作,当第一个操作数求值结果为 false
(如果不为Boolean
类型则存在一个隐形转换),则不会再对第二个操作数求值,并返回第一个操作数;只有当第一个操作数位 true
才会返回第二个操作数(不论第二个操作数是 true
还是 false
)。
const b1 = true; | |
const result1 = (b1 && undefined_variable); // ReferenceError | |
console.log(result1); | |
const b2 = false; // 如果是非 Boolean 类型则会自动转为 Boolean 类型 | |
const result2 = (b2 && undefined_variable); | |
console.log(result2); // false | |
b1 && console.log('只有第一个操作数为真,我才会出现在控制台') | |
b2 && console.log('只有第一个操作数为真,我才会出现在控制台') |
逻辑或(||
)
同样属于短路操作,当第一个操作数求值结果为 true
(如果不为 Boolean
类型则存在一个隐形转换),则不会对第二个操作数求值,并返回第一个操作数;只有当第一个操作数为 false
才会返回第二个操作数(不论第二个操作数是 true
还是 false
)。
const b1 = true; | |
const result1 = (b1 || undefined_variable); | |
console.log(result1); // false | |
const b2 = false; | |
const result2 = (b2 || undefined_variable); // ReferenceError | |
console.log(result2); | |
b1 || console.log('你在控制台看不到我') | |
b2 || console.log('我会出现在控制台!因为 b2 === false') |
加性操作符
加法
-
Number
类型:- 任何数加
NaN
,结果都是NaN
Infinity + Infinity = Infinity
Infinity - Infinity = NaN
-Infinity - Infinity = -Infinity
0 + 0 = 0
0 - 0 = 0
-0 - 0 = -0
- 任何数加
-
操作数中包含
String
类型,则将非String
类型转为String
类型并拼接。-
Object
、Boolean
类型,则调用它们的toString()
方法获得字符串值。默认情况下Object
类型返回"[object Object]"
,Boolean
类型true
返回"true"
、false
返回"false"
-
Undefined
类型或Null
类型:调用String()
取得字符串"undefined"
或"null"
-
const s1 = ""+"s"; | |
const s2 = "str" + {name: "Ashin"}; | |
const s3 = "str" + true; | |
const s4 = "str" + null; | |
const s5 = "str" + undefined; | |
console.log(s1); // "s" | |
console.log(s2); // "str[object Object]" | |
console.log(s3); // "strtrue" | |
console.log(s4); // "strnull" | |
console.log(s5); // "strundefined" |
减法
乘性操作符
乘法
除法
求模
关系操作符
相等操作符
相等和不相等
全等和不全等
正文完
发表至: javascript
2019-07-18