Boolean 您所在的位置:网站首页 js大小写取反 Boolean

Boolean

2023-09-15 15:37| 来源: 网络整理| 查看: 265

如果需要,作为第一个参数传递的值将转换为布尔值。如果省略该参数或参数值为 0、-0、null、false、NaN、undefined,或空字符串(""),则该对象具有的初始值为 false。所有其他值,包括任何对象,空数组([])或字符串 "false",都会创建一个初始值为 true 的对象。

注意不要将基本类型中的布尔值 true 和 false 与值为 true 和 false 的 Boolean 对象弄混了。

其值不是 undefined 或 null 的任何对象(包括其值为 false 的布尔对象)在传递给条件语句时都将计算为 true。例如,以下 if 语句中的条件评估为 true:

js

const x = new Boolean(false); if (x) { // 这里的代码会被执行 }

基本类型的布尔值不受此规则影响。例如下面的 if 语句的条件为假:

js

const x = false; if (x) { // 这里的代码不会执行 }

不要用创建 Boolean 对象的方式将一个非布尔值转化成布尔值,直接将 Boolean 当做转换函数来使用即可,或者使用双重非(!!)运算符:

js

const x = Boolean(expression); // use this... const x = !!expression; // ...or this const x = new Boolean(expression); // don't use this!

对于任何对象,即使是值为 false 的 Boolean 对象,当将其传给 Boolean 函数时,生成的 Boolean 对象的值都是 true。

js

const myFalse = new Boolean(false); // initial value of false const g = Boolean(myFalse); // initial value of true const myString = new String("Hello"); // string object const s = Boolean(myString); // initial value of true

最后,不要在应该使用基本类型布尔值的地方使用 Boolean 对象。

备注: 当将非标准属性 document.all 用作此构造函数的参数时,结果是值为 false 的布尔对象。此属性是旧的、非标准的属性,不应使用。

当使用非严格相等(==)来比较一个对象和布尔原始值时,最重要的是需要弄明白最终比较的是什么。请看一下的示例:

js

if ([]) { console.log("[] is truthy"); // logs "[] is truthy" } if ([] == false) { console.log("[] == false"); // logs "[] == false" }

[] 是真值而 [] == false 也同时成立的原因是:非严格比较 [] == false 会将 [] 的原始值和 false 进行比较。而获取 [] 的原始值时,JavaScript 引擎会首先调用 [].toString()。其结果为 "",也是最终和 false 一起比较的值。换句话说,[] == false 等价于 "" == false,而 "" 是假值——这也解释了为什么会得到这一结果。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有