js 系统教程-12-js 运算符之布尔(boolean)

目录

布尔操作符

布尔运算符用于将表达式转为布尔值,一共包含四个运算符。

  • 取反运算符:!

  • 且运算符:&&

  • 或运算符:||

  • 三元运算符:?:

取反运算符 (!)

bool 值

取反运算符是一个感叹号,用于将布尔值变为相反值,即 true 变成 false ,false 变成 true。

!true // false
!false // true

非布尔值

对于非布尔值,取反运算符会将其转为布尔值。可以这样记忆,以下六个值取反后为 true,其他值都为 false。

  • undefined

  • null

  • false

  • 0

  • NaN

  • 空字符串(”)

两次取反

如果对一个值连续做两次取反运算,等于将其转为对应的布尔值,与 Boolean 函数的作用相同。

两次取反就是将一个值转为布尔值的简便写法。

!!x
// 等同于
Boolean(x)

且运算符(&&)

且运算符(&&)往往用于多个表达式的求值。

它的运算规则是:

  1. 如果第一个运算子的布尔值为true,则返回第二个运算子的值(注意是值,不是布尔值);

  2. 如果第一个运算子的布尔值为false,则直接返回第一个运算子的值,且不再对第二个运算子求值。

't' && '' // ""
't' && 'f' // "f"
't' && (1 + 2) // 3
'' && 'f' // ""
'' && '' // ""

var x = 1;
(1 - 1) && ( x += 1) // 0
x // 1

或运算符(||)

或运算符(||)也用于多个表达式的求值。

它的运算规则是:

  1. 如果第一个运算子的布尔值为true,则返回第一个运算子的值,且不再对第二个运算子求值;

  2. 如果第一个运算子的布尔值为false,则返回第二个运算子的值。

't' || '' // "t"
't' || 'f' // "t"
'' || 'f' // "f"
'' || '' // ""
  • 短路

这种只通过第一个表达式的值,控制是否运行第二个表达式的机制,就称为“短路”(short-cut)

  • 为一个变量设置默认值
function saveText(text) {
  text = text || '';
  // ...
}

// 或者写成
saveText(this.text || '')

三元条件运算符(?:)

三元条件运算符由问号(?)和冒号(:)组成,分隔三个表达式。

它是 JavaScript 语言唯一一个需要三个运算子的运算符。如果第一个表达式的布尔值为true,则返回第二个表达式的值,否则返回第三个表达式的值。

't' ? 'hello' : 'world' // "hello"
0 ? 'hello' : 'world' // "world"

通常来说,三元条件表达式与 if...else 语句具有同样表达效果,前者可以表达的,后者也能表达。

但是两者具有一个重大差别,if...else 是语句,没有返回值;
三元条件表达式是表达式,具有返回值。所以,在需要返回值的场合,只能使用三元条件表达式,而不能使用 if..else

console.log(true ? 'T' : 'F');

原文地址

原文地址

本教程采用知识共享 署名-相同方式共享 3.0协议

目录导航

目录导航

猜你喜欢

转载自blog.csdn.net/ryo1060732496/article/details/81080489