扫码关注官方订阅号
1 描述:
今天看到看到红宝书第27页有写到: 任何对象转换为true;那么实验了一下:
好像没错, function(){} 为 true!
2 后来:
呵呵,好像并不是这样,闲的蛋疼的我又来了一波:
3 问题:
那么问题是function(){} 为什么用双等判断的时候 为false!
认证0级讲师
在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中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
懂了:
在if语句中:
在==操作符中:
赞! 感谢指导
当 JavaScript 需要一个布尔值时(例如:if 语句),任何值都可以被使用。
最终这些值将被转换为 true 或 false
比如使用Boolean(function(){})返回true,在if语句中也会这样判断,因为它需要的是布尔值。
而==是判断类型返回布尔
并不是说function(){}为true, 你看看你的if判断里面只要不为null空 undefined 程序都能走通,所以这里并不能说明 function(){}==true;