如何解决空数组似乎同时等于真假
你在这里测试不同的东西。
if (arr)
在对象上调用(数组是 JS 中对象的实例)将检查对象是否存在,并返回真/假。
当您调用时,if (arr == false)
您会比较此对象的 值
和原始false
值。在内部,arr.toString()
被调用,它返回一个空字符串""
。
这是因为toString
在 Array 上调用返回Array.join()
,而空字符串是 JavaScript 中的虚假值之一。
解决方法
空数组为真,但它们也等于假。
var arr = [];
console.log('Array:',arr);
if (arr) console.log("It's true!");
if (arr == false) console.log("It's false!");
if (arr && arr == false) console.log("...what??");
我猜这是由于相等运算符操作的隐式转换。
谁能解释幕后发生的事情?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。