alert([]==![]) alert([]==![]); true还是false 说下原因 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 alert( [] ) alert( ![] ) alert([] == ![]);这样就明白了 alert( typeof([]) )alert( typeof(![]) ) alert([]==[]) // falsealert({}=={}) // false?var a = new Object()var b = new Object()alert(a==b)明白? 比较运算的类型转换规则和强制类型转换的规则是不同的强制类型转换的规则是所有对象都转换成true,而![]是将空数组进行强制类型转换成布尔值再取反,空数组又是对象的一种,所以![]最终的值是false比较运算的转换规则是在运算符两边的表达式类型不同时会进行转换,并且会将对象转换成字符串(即调用对象的toString方法),而从上面我们知道[] == ![]我们可以等价转换成[] == false,[].toString()的结果是空字符串,空字符串==false的结果自然是true 贴段代码有助于你理解 alert([] == ![]); // true alert({} == !{}); // false alert({} == "[object Object}"); // true 上面敲错了。。alert([] == ![]); // true alert({} == !{}); // false alert({} == "[object Object]"); // true 如何取默认的式样(StyleSheet CSS)值? 求教$("#mainForm")[0].submit()的用法 如何使页面到底部时自动加载数据? Repeater控件经过行变色用jquery方式怎么完成~ JAVASCRIPT如何选中网页上的文字 动态创建的DIV内含iframe时的刷新问题 js动态加载DropDownList,清空如何实现 如何实现弹出子窗口时,父窗口不可编辑~ 一个已经定义但没赋值的变量,如何判空? jq获取FileUpload的各种属性 CSS的解释 javascript调用服务器控件按钮的单击时间?
alert( [] )
alert( ![] )
alert([] == ![]);
这样就明白了
alert( typeof(![]) )
alert({}=={}) // false
?
var a = new Object()
var b = new Object()
alert(a==b)
明白?
强制类型转换的规则是所有对象都转换成true,而![]是将空数组进行强制类型转换成布尔值再取反,空数组又是对象的一种,所以![]最终的值是false
比较运算的转换规则是在运算符两边的表达式类型不同时会进行转换,并且会将对象转换成字符串(即调用对象的toString方法),而从上面我们知道[] == ![]我们可以等价转换成[] == false,[].toString()的结果是空字符串,空字符串==false的结果自然是true
alert({} == !{}); // false
alert({} == "[object Object}"); // true
alert({} == !{}); // false
alert({} == "[object Object]"); // true