在 JavaScript 中将字符串转换为布尔值

在 JavaScript 中将字符串转换为布尔值

Convert a String to a Boolean in JavaScript

要将字符串转换为布尔值,请使用严格相等运算符将字符串与字符串进行比较"true",例如const bool = str === 'true'如果满足条件,严格相等运算符将返回布尔值
true,否则false返回。

索引.js
// ✅ If string is equal to "true" or "false" const str1 = 'true'; const bool1 = str1 === 'true'; // 👉️ true // ✅ If string might be Uppercase or Title Case const str2 = 'False'; const bool2 = str2.toLowerCase() === 'true'; // 👉️ false

严格相等 (===)
运算符检查左侧和右侧的值是否相等,如果相等则返回

true否则返回false

如果 string 等于 string "true",则运算符返回布尔值true并将其分配给变量,在所有其他情况下,变量的值为false

要将任何其他字符串转换为布尔值,请使用该Boolean对象。

使用布尔值将字符串转换为布尔值

要将字符串转换为布尔值,请将字符串作为参数传递给
Boolean()对象,例如const bool = Boolean(str). Boolean对象将传入的字符串转换为布尔值。空字符串被转换为
false,在所有其他情况下结果为true

索引.js
const bool3 = Boolean('test'); // 👉️ true const bool4 = Boolean(''); // 👉️ false const bool5 = Boolean('false'); // 👉️ true const bool6 = Boolean('true'); // 👉️ true const bool7 = Boolean(' '); // 👉️ true

我们使用
布尔
对象将字符串转换为布尔值。

请注意,转换返回的唯一情况false 是我们将空字符串传递给Boolean对象。

所有其他字符串都转换为true.

这是因为Boolean对象将 truthy 值转换为true,将 falsy 值转换为false

所有非假值在 JavaScript 中都是真值。虚假值是:
false, null, undefined, 0, ""(空字符串),NaN(不是数字)。

请注意,空字符串是一个虚假值,这就是它被转换为
false.

如果字符串包含至少 1 个字符,无论是空格,它都是真实的并被转换为true.

当尝试将字符串转换为布尔值时,此方法不起作用,因为任何非空字符串都会转换为布尔值 "false"falsetrue

实现相同结果的更简洁的方法是使用双 NOT (!!) 运算符。

使用双非 (!!) 将字符串转换为布尔值

要将字符串转换为布尔值,请使用双 NOT (!!) 运算符,例如
const bool = !!str. 双 NOT (!!) 运算符将空字符串转换为
false,所有其他字符串都转换为布尔值true

索引.js
const bool8 = !!'test'; // 👉️ true const bool9 = !!''; // 👉️ false const bool10 = !!'false'; // 👉️ true const bool11 = !!'true'; // 👉️ true const bool12 = !!' '; // 👉️ true


NOT (!!)
运算符基本上使用
逻辑 NOT (!)
运算符两次。

逻辑 NOT (!) 运算符将值转换为布尔值并将结果取反。这里有些例子。

索引.js
console.log(!'test'); // 👉️ false console.log(!''); // 👉️ true

空字符串是一个假值,但是当转换为布尔值并翻转时,我们会true返回。

To perform a pure boolean conversion, we have to flip the value again by using a
second logical NOT (!) operator.

index.js
console.log(!!'test'); // 👉️ true console.log(!!''); // 👉️ false
The first ! converts the string to a boolean and flips the result. The second ! flips the boolean value, so we get a pure boolean conversion.

The double NOT (!!) operator is quite concise and does the same thing the
Boolean object does, however it’s a bit harder to read if you’re not familiar
with the logical NOT (!) operator.

Both ways of converting a string to a boolean are very common and often used
throughout the same codebase.

Further Reading #

发表评论