【问题标题】:Javascript Freecodecamp "Do not use a Boolean as a Constructor"Javascript Freecodecamp“不要使用布尔值作为构造函数”
【发布时间】:2017-04-01 02:40:14
【问题描述】:

当我开始免费代码营的“Falsy Bouncer”挑战时,我遇到了一个小问题。当我尝试创建一个新的布尔对象时,如下所示:

var bool = new Boolean();

出现一个黄色三角形,上面写着“不要使用布尔值作为构造函数”。

我可以很容易地绕过这个而不使用对象,或者使用布尔对象文档中所说的不同方法,挑战并不难,但我只是不知道为什么我不能在里面创建一个新对象Freecodecamp代码窗口?它在函数外部或内部执行此操作,并且可以使用或不使用任何参数。

有人知道为什么会这样吗?

【问题讨论】:

标签: javascript html css oop


【解决方案1】:

因为

var boolean = new Boolean(true);
console.log(boolean === true);

false

var boolean = new Boolean(false);
console.log(!!boolean);

是真实的。

【讨论】:

  • 我不是在问如何使用这个对象,因为我知道,我是在问为什么我会得到一个黄色三角形,上面写着“不要使用布尔值作为构造函数”。我想知道为什么会出现这种情况?
  • @RobertMazurowski,因为上述原因不建议这样做。
  • 所以这意味着黄色三角形不会中断运行代码?
  • @RobertMazurowski 不,它只是警告你潜在的问题。
  • 此对象通常用于测试 False 值,因此这是它的工作方式,为什么不建议这样做?
【解决方案2】:

from MDN~

不要使用Boolean 对象将非布尔值转换为 布尔值。相反,使用 Boolean 作为函数来执行此操作 任务:

var x = Boolean(expression);     // preferred 
var x = new Boolean(expression); // don't use

【讨论】:

  • 请提供您引用的文档的链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-23
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 2020-11-07
相关资源
最近更新 更多