JavaScript 的运算符【三】(布尔运算符)

  • A+

运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,覆盖了所有主要的运算。

一.概述

  • 数据类型转Boolean,哪些转为false,哪些转为true?具体见:Boolean值定义
  • 如何将数据类型快速转换为Boolean值?取反或者!!x具体见:取反运算符(!)
  • &&(且)运算符和||(或)运算符
    ①一般用于判断条件&&所有条件为true时,整个判断条件才为true;||只要某一个条件为true,整个判断条件就为true;
    &&第一个表达式是ture,返回第二个值;第一个false则返回第一值。具体见:&&(且)运算符
    &&多个表达式连用,返回第一个表达式为false的值,若全部为true,则返回最后一个表达式的值
    ||若第一个表达式为ture,返回第一个表达式值;第一个false返回第二个值。具体见:||(或)运算符
    ||多个表达式连用,返回第一个布尔值为true的值。如果所有表达式都为false,则返回最后一个表达式的值

1.Boolean值定义

  • 如下六个值undefinednullfalse0NaN""或''(空字符串)自动转换为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"
    
  • 三元条件运算是一个表达式,返回一个值,可以放置到任何需要的地方
zhangfeng

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: