这是我参与8月更文挑战的第七天,活动详情查看:8月更文挑战
操作符
操作符包括数学操作符(加减乘除)、位操作符、关系操作符等等。操作符可以用于各种数据类型,如字符串、数值、布尔值等,也可以用于对象。在给对象用操作符时,通常会调用之前提到过的valueOf()和/或toString()方法先取到可以计算的值。
布尔操作符
逻辑非
逻辑非操作符用(!)表示,并且遵循以下规则:
- 操作对象,返回false
- 操作空字符串,返回true
- 操作非空字符串,返回false
- 操作数值0,返回true
- 操作非0数值,返回false
- 操作null,返回true
- 操作NaN,返回true
- 操作undefined,返回true 同时使用两个(!!)的结果与调用转型函数Boolean()的结果一致。
逻辑与
逻辑与操作符用(&&)表示,操作两个数,同为true的时候才会返回true。 但是如果操作数不是布尔值时,则满足以下规则: 第一个操作数是对象,返回第二个操作数 第二个操作数是对象,只有第一个操作数求值为true时返回第一个对象 两个操作数都是对象,返回第二个对象 有一个操作数是null、undefined、NaN时,则返回这三个值中靠前的那个。
console.log(null && undefined); //返回null
console.log(NaN && null); //返回NaN
console.log(undefined && NaN); //返回undefined
逻辑或
逻辑或操作符用(||)表示,只有两个数同为false时才返回false,并遵循以下规则
- 如果第一个操作数是对象,则返回第一个操作数
- 如果第一个操作数求值为false,则返回第二个操作数
- 如果两个操作数都为对象,则返回第一个操作数
- 如果两个操作数都是null,则返回null
- 如果两个操作数都是NaN,则返回NaN
- 如果两个操作数都是undefined,则返回undefined 逻辑或常用于避免给变量赋值null或者undefined
let myObject = preferredObject || backupObject;