JS在if中的強(qiáng)制類型轉(zhuǎn)換方式
眾所周知,JS在很多情況下會(huì)進(jìn)行強(qiáng)制類型轉(zhuǎn)換,其中,最常見兩種是:
1.使用非嚴(yán)格相等進(jìn)行比較,對(duì)==左邊的值進(jìn)行類型轉(zhuǎn)換
2.在if判斷時(shí),括號(hào)內(nèi)的值進(jìn)行類型轉(zhuǎn)換,轉(zhuǎn)化為布爾值
今天,我就來聊一聊JS在if中的強(qiáng)制類型轉(zhuǎn)換。
其實(shí),如果詳細(xì)要討論哪些值在if中強(qiáng)制轉(zhuǎn)換為true,哪些值在if中強(qiáng)制轉(zhuǎn)換為false,這很困難,因?yàn)椋闆r太多了。但是,我們可以輕松記住強(qiáng)制類型轉(zhuǎn)換結(jié)果,為什么?因?yàn)椋蠖鄶?shù)情況下,都是轉(zhuǎn)換為true,只有四種情況會(huì)轉(zhuǎn)換為false。此時(shí),我們只需要記住轉(zhuǎn)換為false的那四種情況就可以了。
強(qiáng)制轉(zhuǎn)換為false的四種情況
在if中進(jìn)行強(qiáng)制轉(zhuǎn)換為false的情況只有四種,分別是:
1.數(shù)字0
2.NaN
3.空字符串
4.null或undefined
很多人會(huì)問,為什么null和undefined會(huì)在一起?因?yàn)?,在非?yán)格相等的情況下,null和undefined是相等的。
null == undefined // true // 兩種寫法相等 a == null a === null || a === undefined
如何判斷引用數(shù)組和對(duì)象是否為空
很多時(shí)候,我們會(huì)碰上這種情況,即在if中判斷數(shù)組或?qū)ο笫欠駷榭?。如果直接判斷的話,依?jù)之前的理論,不管是不是空數(shù)組或?qū)ο笞詈蠖际莟rue,因?yàn)閿?shù)組或?qū)ο髸?huì)強(qiáng)制轉(zhuǎn)換為true。
判斷數(shù)組是否為空很簡(jiǎn)單,只需要訪問它的length屬性即可。那對(duì)象該怎么辦?
這里可以使用Object.keys方法對(duì)對(duì)象屬性進(jìn)行遍歷,該方法返回一個(gè)包含對(duì)象屬性的數(shù)組,如果數(shù)組長(zhǎng)度為0,即代表為空。當(dāng)然,這種情況并不完全嚴(yán)謹(jǐn),因?yàn)?,?duì)象可能存在不可枚舉屬性。
var arr = [] arr.length = 0 var obj = {} Object.keys(obj).length = 0
總結(jié)
以上所述是小編給大家介紹的JS在if中的強(qiáng)制類型轉(zhuǎn)換,希望對(duì)大家有所幫助,如果對(duì)大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的
- 詳解JavaScript中的強(qiáng)制類型轉(zhuǎn)換和自動(dòng)類型轉(zhuǎn)換
- JS中強(qiáng)制類型轉(zhuǎn)換的實(shí)現(xiàn)
- 重學(xué)JS之顯示強(qiáng)制類型轉(zhuǎn)換詳解
- JavaScript強(qiáng)制類型轉(zhuǎn)換和隱式類型轉(zhuǎn)換操作示例
- 詳解JavaScript中的強(qiáng)制類型轉(zhuǎn)換
- Javascript Boolean、Nnumber、String 強(qiáng)制類型轉(zhuǎn)換的區(qū)別詳細(xì)介紹
- Javascript 強(qiáng)制類型轉(zhuǎn)換函數(shù)
- 深入理解JavaScript強(qiáng)制類型轉(zhuǎn)換
相關(guān)文章
JavaScript Accessor實(shí)現(xiàn)說明
關(guān)于Getter與Setter大家一定不會(huì)陌生,下面簡(jiǎn)單介紹幾種我所知道的在JavaScript中實(shí)現(xiàn)G/S的方法.2010-12-12出現(xiàn)“不能執(zhí)行已釋放的Script代碼”錯(cuò)誤的原因及解決辦法
出現(xiàn)“不能執(zhí)行已釋放的Script代碼”錯(cuò)誤的原因及解決辦法...2007-08-08Bootstrap modal 多彈窗之疊加關(guān)閉陰影遮罩問題的解決方法
這里也會(huì)遇到一次性關(guān)閉所有modal引起陰影遮罩的問題,也就是所有modal都關(guān)閉了,但是主頁(yè)面仍然被陰影遮罩。下面通過本文給大家分享解決方案,需要的朋友參考下吧2017-02-02淺談Sticky組件的改進(jìn)實(shí)現(xiàn)
這篇文章主要介紹了Sticky組件的改進(jìn)實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2016-03-03JS如何設(shè)置滾動(dòng)屬性默認(rèn)自動(dòng)滾動(dòng)到底部(overflow:scroll;)
這篇文章主要給大家介紹了關(guān)于JS如何設(shè)置滾動(dòng)屬性默認(rèn)自動(dòng)滾動(dòng)到底部(overflow:scroll;)的相關(guān)資料,通過本文介紹的的JavaScript代碼示例,你可以實(shí)現(xiàn)滾動(dòng)條默認(rèn)在最底部的效果,需要的朋友可以參考下2023-10-10簡(jiǎn)單實(shí)現(xiàn)js選項(xiàng)卡切換效果
這篇文章主要為大家介紹了簡(jiǎn)單實(shí)現(xiàn)js選項(xiàng)卡切換效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02javascript日期驗(yàn)證之輸入日期大于等于當(dāng)前日期
這篇文章主要介紹了javascript日期驗(yàn)證之輸入日期大于等于當(dāng)前日期,需要的朋友可以參考下2015-12-12layui框架中l(wèi)ayer父子頁(yè)面交互的方法分析
這篇文章主要介紹了layui框架中l(wèi)ayer父子頁(yè)面交互的方法,結(jié)合實(shí)例形式分析了layer父子頁(yè)面交互的常用技巧以及l(fā)ayer彈出多個(gè)iframe找到父頁(yè)面的操作方法,需要的朋友可以參考下2017-11-11