gpt4 book ai didi

javascript - Mozilla 开发者页面 - 但永远不要使用这种形式

转载 作者:数据小太阳 更新时间:2023-10-29 06:11:44 26 4
gpt4 key购买 nike

我的问题是关于 Mozilla 开发者页面的:typeof operator

在示例章节中,每当完成以下形式的比较时,他们都会对其进行评论:

typeof Number(1) === 'number'; // but never use this form!

虽然他们从不解释原因。很容易看出为什么这是一种愚蠢的类型检查方式,但我很好奇为什么他们不厌其烦地多次发表评论。

欢迎提供任何线索。

注意:是不是因为 Number() 是一个构造函数,没有调用 new 运算符? (我的第一个猜测)

Ps: 代码示例在 Firefox 的控制台版本 27.0 中测试

最佳答案

他们确实解释了原因。在同一页上,(稍微超出了您复制的内容),它说

typeof new Boolean(true) === 'object'; // this is confusing. Don't use!
typeof new Number(1) === 'object'; // this is confusing. Don't use!
typeof new String("abc") === 'object'; // this is confusing. Don't use!

注意 new 关键字是如何出现的。在您的示例中,没有 new 关键字。有点难以发现,不是吗?所以他们想说的是,因为一个人的类型是 number 而另一个人的类型是 object 但两者看起来很相似,这可能会混淆你的意思。

许多问题都可能源于将对象视为数字,因为它在某些方面表现得像数字。例如,使用 typeof 进行类型检查,使用 === 进行比较。

虽然,我可以看到它在那个页面上表达得不是很清楚。

关于javascript - Mozilla 开发者页面 - 但永远不要使用这种形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21895938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com