Truthy

JavaScript 有一个 truthy 概念,即在某些场景下会被推断为 true,例如除 0 以外的任何数字:

if (123) {
  // 将会被推断出 `true`
  console.log('Any number other than 0 is truthy');
}

你可以用下表来做参考:

Variable Type When it is falsy When it is truthy
boolean false true
string ' ' (empty string) any other string
number 0 NaN any other number
null always never
Any other Object including empty ones like {},[] never always

明确的

通过操作符 !!,你可以很容易的将某些值转化为布尔类型的值,例如:!!foo,它使用了两次 !,第一个 ! 用来将其(在这里是 foo)转换为布尔值,但是这一操作取得的是其取反后的值,第二个取反时,能得到真正的布尔值。

这在很多地方都可以看到:

// Direct variables
const hasName = !!name;

// As members of objects
const someObj = {
  hasName: !!name
};

// ReactJS
{
  !!someName && <div>{someName}</div>;
}

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「IT平头哥联盟」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

results matching ""

    No results matching ""