javascript - function(){} == true || function(){} != true;function(){}不为true?
PHP中文网
PHP中文网 2017-04-10 17:52:34
[JavaScript讨论组]

1 描述:

今天看到看到红宝书第27页有写到: 任何对象转换为true;那么实验了一下:

好像没错, function(){} 为 true!

2 后来:

呵呵,好像并不是这样,闲的蛋疼的我又来了一波:

3 问题:

那么问题是
function(){} 为什么用双等判断的时候 为false!

PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
PHP中文网

懂了:

在if语句中:

ECMAScript 会自动调用Boolean() 转换函数将这个表达式转换为一个布尔值(强转);
如果此值的结果为true,则执行语句,如果为false则。。。。

在==操作符中:

如果有一个操作数为对象,另一个不是,则调用对象的valueOf()方法,得到后进行比较;
如果2个都为对象,则比较它们是不是同一个对象,如果为同一个对象,则返回true,否则返回false

赞! 感谢指导

天蓬老师

当 JavaScript 需要一个布尔值时(例如:if 语句),任何值都可以被使用。
最终这些值将被转换为 true 或 false
比如使用Boolean(function(){})返回true,在if语句中也会这样判断,因为它需要的是布尔值。

而==是判断类型返回布尔

伊谢尔伦

并不是说function(){}为true, 你看看你的if判断里面只要不为null空 undefined 程序都能走通,所以这里并不能说明 function(){}==true;

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号