淺談javascript中的數(shù)據(jù)類型轉(zhuǎn)換
1、把其他的數(shù)據(jù)類型轉(zhuǎn)換為number類型
Number()->嚴格
parseFloat/parseInt ->非嚴格
isNaN(value) 如果value值不是數(shù)字類型的,它是首先調(diào)用Number轉(zhuǎn)換為數(shù)字類型然后在判斷是否為有效的數(shù)字
例如:
Number("12px"); ->NaN
parseInt("12px"); ->12
isNaN("12"); ->false
規(guī)律:
1)把布爾類型轉(zhuǎn)換為數(shù)字的話 true->1 false->0
2)把null/undefined轉(zhuǎn)換為數(shù)字 null->0 undefined->NaN 10+null=10 10+undefined=NaN
3)把[]轉(zhuǎn)換為數(shù)字 首先調(diào)用數(shù)組的toString方法把[]->"",然后在使用Number方法把""->0
2、把其他的數(shù)據(jù)類型轉(zhuǎn)換為布爾類型
Boolean
!!
! 先轉(zhuǎn)換為布爾類型,然后在取反
例如:
!!1->true
!!0->false
![]->false !![]->true
規(guī)律:
只有0、NaN、null、undefined、""這五個轉(zhuǎn)換為布爾類型的時候是false,其余的轉(zhuǎn)換完成都是true
特殊情況:
如果你的條件判斷中只是單獨的一個值,它是首先把1轉(zhuǎn)換布爾類型(->true),在判斷是真還是假,如果是真條件成立,反之條件不成立
if (1) { } if ("3px" * 3) {//->條件不成立 "3px" * 3=NaN ->false } if ("3px" + 3) {//->條件成立 "3px" + 3="3px3" ->true }
"+"在JS中不僅僅是數(shù)學(xué)運算,遇到字符串的時候?qū)儆谧址唇?/p>
"-、*、/"在JS中只能是數(shù)學(xué)運算,遇到不是number類型的要強制轉(zhuǎn)換為number進行數(shù)學(xué)性運算
3、兩個值進行比較(==比較的,===比較數(shù)據(jù)類型不一樣不會進行默認的轉(zhuǎn)換),如果左右兩邊的數(shù)據(jù)類型不一樣,我們需要遵循一套法則,進行默認的數(shù)據(jù)類型轉(zhuǎn)換
value1==value2
1)對象==對象 比較的是自己存儲的內(nèi)存地址,如果內(nèi)存地址不一樣就不相等 []==[]->false 每一個空數(shù)組都是一個單獨的內(nèi)存地址
2)對象==字符串 調(diào)用toString方法,將對象轉(zhuǎn)換為字符串 []==""->true
3)對象==布爾 對象轉(zhuǎn)換為數(shù)字(toString-Number),布爾也轉(zhuǎn)換為數(shù)字(true->1 false->0)
[]==false ->true []->0 false->0 0==0->true
![]==false -> ![]先把空數(shù)組轉(zhuǎn)換為布爾類型然后在取反->false false==false->true
4)對象==數(shù)字 對象轉(zhuǎn)換為數(shù)字 []==0->true []==1->false
5)字符串==布爾 兩者都轉(zhuǎn)換為數(shù)字 "3"==true->false "1"==true->true
6)字符串==數(shù)字 字符串轉(zhuǎn)換為數(shù)字 ""==0->true
7)布爾==數(shù)字 布爾轉(zhuǎn)換為數(shù)字 true==1->true true==2->false
8)null==undefined ->true null===undefined ->false
null/undefined和其他的任何值都不相等 null==0->false
9)NaN==NaN ->false NaN和任何的值(包括自己)都不相等
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
JavaScript中關(guān)于for循環(huán)刪除數(shù)組元素內(nèi)容時出現(xiàn)的問題
昨天在用for循環(huán)進行數(shù)組去重的時候出現(xiàn)的問題小結(jié),怎么解決這個問題呢,今天小編通過本文給大家講解下js循環(huán)刪除數(shù)組元素的方法,一起看看吧2016-11-11javaScript實現(xiàn)浮點數(shù)轉(zhuǎn)十六進制字符
浮點數(shù)轉(zhuǎn)十六進制的方法有很多,在本文將為大家詳細介紹下js中時如何實現(xiàn)的,下面有個不錯的示例,感興趣的朋友可以參考下,希望對大家有所幫助2013-10-10解決JS請求路徑控制臺報錯?Failed?to?launch'xxx'?because?t
這篇文章主要介紹了JS請求路徑控制臺報錯?Failed?to?launch?‘xxx‘?because?the?scheme?does?not?have?a?registered?handler的問題,本文給大家分享最新完美解決方法,需要的朋友可以參考下2023-03-03