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

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

Convert a String to a Boolean in TypeScript

要在 TypeScript 中将字符串转换为布尔值,请使用严格相等运算符将字符串与字符串进行比较"true",例如
const bool = str === 'true'.

如果满足条件,严格相等运算符将返回布尔值true,否则false返回。

索引.ts
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

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

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

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

如果您需要将字符串转换为布尔值,只考虑将空字符串值设为 befalse而将所有其他字符串设为 be true,请使用该Boolean
对象。

索引.ts
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对象的一些示例。

索引.ts
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"falsetrue

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

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

双 NOT (!!) 运算符将空字符串转换为false,所有其他字符串都转换为布尔值true

使用
双重 NOT (!!)
运算符与使用
逻辑 NOT (!)
运算符两次相同。

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

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

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

要执行纯布尔值转换,我们必须使用第二个逻辑 NOT (!) 运算符再次翻转值。

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

当我们两次使用逻辑 NOT (!) 运算符时,我们:

  • 将值转换为布尔值并将其翻转
  • 再次翻转布尔值

一种简单的思考方式是双 NOT (!!) 运算符将值转换为布尔值。

这里有些例子。

索引.js
console.log(!![]); // 👉️ true console.log(!!{}); // 👉️ true console.log(!!''); // 👉️ false console.log(!!'false'); // 👉️ true console.log(!!0); // 👉️ false console.log(!!10); // 👉️ true

双 NOT (!!) 运算符非常简洁,并且做的事情与
Boolean对象相同,但是如果您不熟悉逻辑 NOT (!) 运算符,它会有点难以阅读。

将字符串转换为布尔值的两种方法都非常常见,并且经常在同一代码库中使用。

发表评论