codecamp

布尔(Booleans)

布尔类型原始值包括truefalse。下面的操作符产生布尔值:

  • 二元逻辑运算符:&&(与)(或)
  • 前缀逻辑运算符:!(非)
  • 等值运算符:=== !== == !=
  • 比较运算符(字符串或数字):> >= < <=

真值和假值(Truthy and falsy)

每当JavaScript希望一个布尔值时(例如:if语句的条件),可以使用任何值。它将被理解(转换)为truefalse。下面的值被理解为false

  • undefined, null
  • 布尔: false
  • 数字: -0, NaN
  • 字符串: ‘’

所有其他值被认为true。被理解为false的值称为假值(falsy),被理解为true的值称为真值(truthy)。可以使用Boolean作为函数,测试值被理解为什么。

> Boolean(undefined)
  false
> Boolean(0)
  false
> Boolean(3)
  true

二元逻辑运算符(Binary logical operators)

JavaScript中的二元逻辑运算符是短路运算——如果第一个操作数可以确定结果,第二个操作数将不被验证(运算)。例如,在下面的代码中,函数foo()永远不会被调用。

false && foo()
true  || foo()

此外,二元逻辑运算符会返回操作数中的一个——可能是一个布尔值,也可能不是。一张真值表用来决定返回哪个值:

  • 与:如果第一个操作数是假值,返回第一个。否则返回第二个操作数。
    > NaN && 'abc'
    NaN
    > 123 && 'abc'
    'abc'

  • 或:如果第一个操作数是真值,返回第一个。否则,返回第二个操作数。
    > 'abc' || 123
    'abc'
    > '' || 123
    123

等值运算符(Equality operators)

在JavaScript中检测相等,你可以使用严格相等(===)和严格不等(!==)。或者你也可以使用非严格相等(==)和非严格不等(!=)。经验规则:总是用严格运算符,假装非严格运算符不存在。严格相等更安全。

深入阅读

值(Values)
数字(Numbers)
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }