JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 请解释.call(false)的怪异行为大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
> (function () { return this; }).call(false)
false

> !!(function () { return this; }).call(false)
true

在Firefox 4 beta和Chrome中都是最新的.

它就像……什么时候是布尔值,而不是布尔值?

@H_944_9@解决方法
看来,当一个原始布尔值作为第一个参数传递给call或apply时,它会被自动装入一个Boolean对象. Firefox 4上的Firebug中很明显:
>>> (function () { return this; }).call(false)
Boolean {}

在Chrome的检查员中,它最初令人困惑,但有一点探索揭示了真相:

>>> (function () { return this; }).call(false)
false
>>> typeof (function () { return this; }).call(false)
"object"

所有JavaScript对象都是“truthy”,甚至是新的布尔值(false)和新的number(0).因此,使用两个否定运算符(!!技巧)将它们转换为真正的布尔值.

大佬总结

以上是大佬教程为你收集整理的javascript – 请解释.call(false)的怪异行为全部内容,希望文章能够帮你解决javascript – 请解释.call(false)的怪异行为所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。