运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,覆盖了所有主要的运算。
一.概述
- 数据类型转Boolean,哪些转为false,哪些转为true?具体见:Boolean值定义
- 如何将数据类型快速转换为Boolean值?
取反
或者!!x
。具体见:取反运算符(!) &&
(且)运算符和||
(或)运算符
①一般用于判断条件&&
所有条件为true时,整个判断条件才为true;||
只要某一个条件为true,整个判断条件就为true;
②&&
第一个表达式是ture,返回第二个值;第一个false则返回第一值。具体见:&&(且)运算符
③&&
多个表达式连用,返回第一个表达式为false的值,若全部为true,则返回最后一个表达式的值
④||
若第一个表达式为ture,返回第一个表达式值;第一个false返回第二个值。具体见:||(或)运算符
⑤||
多个表达式连用,返回第一个布尔值为true
的值。如果所有表达式都为false
,则返回最后一个表达式的值
1.Boolean值定义
- 如下六个值undefined,null,false,0,NaN,""或’’(空字符串)自动转换为false;其余转换为true
2.Boolean值表达式概览
- 布尔运算符用于将表达式转为布尔值,一共包含四个运算符。
① 取反运算符:!
② 且运算符:&&
③ 或运算符:||
④ 三元运算符:?:
二.取反运算符(!)
-
将现有的任何值取反,并输出Boolean值
!true // false !false // true !undefined // true !null // true !0 // true !NaN // true !"" // true !54 // false !'hello' // false ![] // false !{} // false
-
将任何值转为其本身的Boolean值的2种写法
!!x // 等同于 Boolean(x)
三.且运算符(&&)
-
它的运算规则是:如果第一个运算子的布尔值为
true
,则返回第二个运算子的值(注意是值,不是布尔值);如果第一个运算子的布尔值为false
,则直接返回第一个运算子的值,且不再对第二个运算子求值。't' && '' // "" 't' && 'f' // "f" 't' && (1 + 2) // 3 '' && 'f' // "" '' && '' // "" var x = 1; (1 - 1) && ( x += 1) // 0 x // 1
-
且运算符可以多个连用,这时返回第一个布尔值为
false
的表达式的值。如果所有表达式的布尔值都为true
,则返回最后一个表达式的值。true && 'foo' && '' && 4 && 'foo' && true // '' 1 && 2 && 3 // 3
四.或运算符(||)
-
或运算符(
||
)也用于多个表达式的求值。它的运算规则是:如果第一个运算子的布尔值为true
,则返回第一个运算子的值,且不再对第二个运算子求值;如果第一个运算子的布尔值为false
,则返回第二个运算子的值。't' || '' // "t" 't' || 'f' // "t" '' || 'f' // "f" '' || '' // "" var x = 1; true || (x = 2) // true x // 1
-
或运算符可以多个连用,这时返回第一个布尔值为
true
的表达式的值。如果所有表达式都为false
,则返回最后一个表达式的值。false || 0 || '' || 4 || 'foo' || true // 4 false || 0 || '' // ''
-
或运算符常用于为一个变量设置默认值。
function saveText(text) { text = text || ''; // ... } // 或者写成 saveText(this.text || '')
五.三元条件运算符(?:)
-
三元条件运算符由问号(?)和冒号(:)组成,分隔三个表达式。它是 JavaScript 语言唯一一个需要三个运算子的运算符。如果第一个表达式的布尔值为
true
,则返回第二个表达式的值,否则返回第三个表达式的值。't' ? 'hello' : 'world' // "hello" 0 ? 'hello' : 'world' // "world"
-
三元条件运算是一个表达式,返回一个值,可以放置到任何需要的地方