文章詳情頁
javascript - 【快速判斷數組為空】[]==false 為什么返回true?
瀏覽:132日期:2023-03-14 14:09:48
問題描述
console.log([]==false); //輸出為trueconsole.log([’1’]==false);//輸出為false
可見,這可以很快速判斷數組是否為空,但是原理上有些疑惑。已知:
1.相等操作符'==':先轉換再比較。 如果有一個操作數是布爾值,則在比較相等性之前將其轉換為數值false轉換為0,true轉換為1。
2.如果一個操作數是對象,另一個操作數不是,則調用對象的valueOf()方法,用得到的基本類型值進行轉換。
所以[]==fasle的右邊會被轉換成0。那左邊呢?是怎樣轉換的呢?
問題解答
回答1:這個送給你,javascript 的對比表格:Relational and Equality Operators
http://tech.youzan.com/javasc... 看完你會懂的
回答3:因為他們都會轉化為布爾值進行比較, []==false => true == false //false
回答4:先轉為數字0,然后再對比吧。
回答5:講道理判斷數組為空用這個是不行的吧!
if([]){ alert(’1111’);}
我以為它不會彈,結果還是彈了。大多數情況還是length來判斷。當然length判斷元素個數的時候也是坑!
回答6:只能說js的內部機制是空數組就是false所以false==false成立啊!那非空數組自然轉換成true了true==false就不成立啊!有啥難理解的嗎?
標簽:
JavaScript
相關文章:
1. macOS Sierra 10.12 安裝mysql 5.7.1出現錯誤2. mysql主主同步,從庫不同步應該怎么解決?3. javascript - 按鈕鏈接到另一個網址 怎么通過百度統計計算按鈕的點擊數量4. android - 安卓做前端,PHP做后臺服務器 有什么需要注意的?5. mysql 獲取時間函數unix_timestamp 問題?6. mysql - 拖拽重排序后怎么插入數據庫?7. mysql - 僅僅只是把單引號與反斜杠轉義不用prepare statement能否避免sql注入?8. 新入手layuiadmin,部署到tp中。想用php自已寫一個后臺管理系統。9. mysql在限制條件下篩選某列數據相同的值10. php - 生產環境下,給MySQL添加索引,修改表結構操作,如何才能讓線上業務不受影響?
排行榜
