在 TypeScript 中将字符串转换为布尔值
Convert a String to a Boolean in TypeScript
要在 TypeScript 中将字符串转换为布尔值,请使用严格相等运算符将字符串与字符串进行比较"true"
,例如
const bool = str === 'true'
.
如果满足条件,严格相等运算符将返回布尔值true
,否则false
返回。
const str1 = 'true'; // 👇️ const bool1: boolean const bool1 = str1 === 'true'; console.log(bool1); // 👉️ true // ✅ If the string might be Uppercase or Title Case const str2 = 'False'; // 👇️ const bool2: boolean const bool2 = str2.toLowerCase() === 'true'; console.log(bool2); // 👉️ false
严格相等 (===)
运算符检查左侧和右侧的值是否相等,如果相等则返回,
true
否则返回false
。
"true"
,则运算符返回布尔值true
并将其分配给变量。在所有其他情况下,变量的值为false
。要将任何其他字符串或任何其他值转换为布尔值,请使用该Boolean
对象。
使用 Boolean() 将字符串转换为布尔值
如果您需要将字符串转换为布尔值,只考虑将空字符串值设为 befalse
而将所有其他字符串设为 be true
,请使用该Boolean
对象。
const bool3 = Boolean('hello'); // 👉️ true const bool4 = Boolean(''); // 👉️ false const bool5 = Boolean('false'); // 👉️ true const bool6 = Boolean('true'); // 👉️ true const bool7 = Boolean(' '); // 👉️ true
该Boolean
对象将传入的字符串转换为布尔值。空字符串被转换为false
,在所有其他情况下结果为true
。
false
是我们将空字符串传递给Boolean
对象。所有其他字符串都转换为true
.
这是因为Boolean
对象将 truthy 值转换为true
,将 falsy 值转换为false
。
所有非假值在 JavaScript(和 TypeScript)中都是真值。虚假值是:false
, null
, undefined
, 0
, ""
(空字符串),NaN
(不是数字)。
请注意,空字符串是一个虚假值,这就是它被转换为
false
.
如果字符串包含至少 1 个字符,无论是空格,它都是真实的并被转换为true
.
以下是使用该Boolean
对象的一些示例。
console.log(Boolean([])); // 👉️ true console.log(Boolean({})); // 👉️ true console.log(Boolean('')); // 👉️ false console.log(Boolean('false')); // 👉️ true console.log(Boolean(0)); // 👉️ false console.log(Boolean(10)); // 👉️ true
请注意,空数组和空对象是真值,而空字符串是假值。
"false"
false
true
实现相同结果的更简洁的方法是使用双 NOT (!!) 运算符。
const bool8 = !!'hello'; // 👉️ true const bool9 = !!''; // 👉️ false const bool10 = !!'false'; // 👉️ true const bool11 = !!'true'; // 👉️ true const bool12 = !!' '; // 👉️ true
双 NOT (!!) 运算符将空字符串转换为false
,所有其他字符串都转换为布尔值true
。
使用
双重 NOT (!!)
运算符与使用
逻辑 NOT (!)
运算符两次相同。
逻辑 NOT (!) 运算符将值转换为布尔值并将结果取反。这里有些例子。
console.log(!'hello'); // 👉️ false console.log(!''); // 👉️ true
空字符串是一个假值,但是当转换为布尔值并翻转时,我们会true
返回。
要执行纯布尔值转换,我们必须使用第二个逻辑 NOT (!) 运算符再次翻转值。
console.log(!!'test'); // 👉️ true console.log(!!''); // 👉️ false
当我们两次使用逻辑 NOT (!) 运算符时,我们:
- 将值转换为布尔值并将其翻转
- 再次翻转布尔值
一种简单的思考方式是双 NOT (!!) 运算符将值转换为布尔值。
这里有些例子。
console.log(!![]); // 👉️ true console.log(!!{}); // 👉️ true console.log(!!''); // 👉️ false console.log(!!'false'); // 👉️ true console.log(!!0); // 👉️ false console.log(!!10); // 👉️ true
双 NOT (!!) 运算符非常简洁,并且做的事情与
Boolean
对象相同,但是如果您不熟悉逻辑 NOT (!) 运算符,它会有点难以阅读。
将字符串转换为布尔值的两种方法都非常常见,并且经常在同一代码库中使用。