《深入理解JavaScript》——1.5 布尔值

简介:

本节书摘来自异步社区《深入理解JavaScript》一书中的第1章,第1.5节,作者: 【美】AxelRauschmayer(罗彻麦尔)译者: 王玉林 , 杜欢 , 庄婷婷 , 章子鹏,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.5 布尔值

原始布尔类型包含true和false两个值。以下运算符会产生布尔值。

二元逻辑运算符:&&(与), || (或)。
前置逻辑运算符:! (非)。
比较运算符。

相等运算符:===、!==、==、!=。

排序运算符(针对字符串及数字):>,>=,<,<=。

1.5.1 真值与假值
在JavaScript中,可以使用任意值来表示布尔值(如作为if语句的条件)。它们都会被解释成true或false。以下的值会被解释成false。

undefined、null。
布尔值:false。
数字:-0、NaN。
字符串:' '。
其他所有的值(包括所有的对象)都会被当成true。被解释为false的值可被称为假值,被解释为true的值可被称为真值。Boolean()作为函数调用时,会将传入的参数转换为一个布尔值。可以用它来测试看看一个值是如何被解释的:

 screenshot

1.5.2 二元逻辑运算符
JavaScript中的二元逻辑运算符是短路的。因为如果第一个运算数就足以确定结果的话,则不会对第二个运算数做评估。例如,以下表达式,其中的foo()函数永远不会被调用:

screenshot

此外,二元逻辑运算符会返回运算数中的一个——可能是一个布尔值,也可能不是。对真假的检查将用于确定返回哪一个。

(1)与(&&)

如果第一个运算数是假值,返回它。否则,返回第二个运算数。

  screenshot

(2)或(||)

如果第一个运算数是真值,返回它。否则,返回第二个运算数。

  screenshot

1.5.3 等式运算符
JavaScript有两种类型的相等。

常规的,或“宽松的”相等(或不相等):== 和 !=。
严格的相等(或不相等):=== 和 !==。
常规相等,更多考虑值是否相等(详细解释参见9.3.2“普通(宽松)相等(==,!=)”),这种方式可以隐藏一些bug。因此,推荐使用严格相等。

相关文章
|
4月前
|
JavaScript 前端开发 安全
深入理解JavaScript数据类型转换
深入理解JavaScript数据类型转换
45 2
|
4月前
|
存储 前端开发 JavaScript
【面试题】Javascript的这些运算符,你都都掌握哪些?
【面试题】Javascript的这些运算符,你都都掌握哪些?
|
Web App开发 JavaScript 前端开发
深入理解JavaScript——字符串
深入理解JavaScript——字符串
60 0
|
JavaScript 前端开发 算法
深入理解JavaScript——数组
我们在前文系列中,我们以内置构造函数 Object 开始讲起,并从中衍生出各种知识点。而后我们又讲另一个大构造函数 Function,同样引出了比肩 Object 的知识点。这两者之后,笔者认为JavaScript的大厦已经建成,只是天边还有两朵小乌云,今天我们就讲其中的一朵——数组
99 0
深入理解JavaScript——数组
|
JavaScript 前端开发 API
深入理解JavaScript——循环都来这儿
写这篇文章真的很痛苦,因为我的心已经不在这里。前前后后花了一周时间才撬动键盘
97 0
|
JSON JavaScript 前端开发
深入理解JavaScript-一切皆对象
深入理解JavaScript-一切皆对象
151 0
深入理解JavaScript-一切皆对象
|
存储 JavaScript 前端开发
JavaScript相关面试题:1.js垃圾回收机制;2.闭包;3.为什么不建议使用innerHTML;4.null和undefined的区别;5.new 操作符
new 操作符的作用是什么? :作用如下。 (1)创建一个空对象。 (2)由this变量引用该对象。 (3)该对象继承该函数的原型(更改原型链的指向)。 (4)把属性和方法加入到this引用的对象中。 (5)新创建的对象由this引用,最后隐式地返回this, 过程如下: var obj={}; obj._proto_=Base.prototype; Base.cail(obj)
256 0
|
JavaScript 前端开发 开发者
深入理解JavaScript函数
深入理解JavaScript函数
97 0
|
缓存 JavaScript 前端开发
深入理解javascript闭包
要理解闭包,首先必须理解Javascript特殊的变量作用域 变量的作用域无非就是两种:全局变量和局部变量 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量
1692 0