JavaScript TypeScript 中的 Boolean

Posted 泡泡机不冒泡了

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript TypeScript 中的 Boolean相关的知识,希望对你有一定的参考价值。

booleanjavascript 中一种有趣的原始数据类型。在TypeScript中,非严格模式下("strictNullChecks": false),它总共允许4个值 true 、false、undefined、null

JavaScript 中的 Boolean

boolean 可以取值 truefalse 。 其他类型的值可以是真值或假值,例如 undefinednull

let b = true
if(b) console.log(\'logged\')

b = false
if(b) console.log(\'not logged\')

b = undefined
if(b) console.log(\'not logged\')

b = null
if(b) console.log(\'not logged\')

要获取任何值对应的布尔值,可以使用Boolean函数

Boolean(false) // false
Boolean(true) // true
Boolean("false") // true ❗️
Boolean("Hey folks") // true
Boolean({}) // true
Boolean([]) // true
Boolean(123.4) // true
Boolean(Symbol()) // true
Boolean(function() {}) // true
Boolean(undefined) // false
Boolean(null) // false
Boolean(NaN) // false
Boolean(0) // false
Boolean("") // false

!! 运算也可以达到类似 Boolean() 的效果

const value = \'hello world\';

Boolean(value); // true 
!!value; // true 

Airbnb 的编码风格 偏向使用 !! 进行 boolean 值转换

const age = 0;

// bad
const hasAge = new Boolean(age);

// good
const hasAge = Boolean(age);

// best
const hasAge = !!age;

很多时候 !!Boolean() 可以相互替换。 !! 好处在于编码时快捷,但 Boolean() 是函数, 可以作为方法入参传递,很适合用来过滤集合中的空值。

const collection = [
  { name: \'A\'},
  undefined,
  "false",
  false,
  23,
  null
]

collection.filter(Boolean) //[{ name: \'A\'}, "false", 23]

Number 转换函数一起使用,将所有值转换为对应的数字或NaN,这是一种快速获取实际值的非常酷的方法:

const x = ["1.23", 2137123, "wut", false, "lol", undefined, null]
  .map(Number)
  .filter(Boolean) // [1.23, 2137123] 

以上是关于JavaScript TypeScript 中的 Boolean的主要内容,如果未能解决你的问题,请参考以下文章

如何将 D3 JavaScript 中的“this”翻译成 TypeScript?

javascript JS中的TypeScript

Typescript Express 项目中的客户端 Javascript

如何等待 JavaScript/TypeScript 中的 Promise 列表?

TypeScript 和 JavaScript 的区别

从 Angular 中的 JavaScript 文件调用 Typescript 函数