首頁  >  文章  >  web前端  >  淺談javascript中的資料型別轉換

淺談javascript中的資料型別轉換

高洛峰
高洛峰原創
2017-01-09 14:46:301189瀏覽

1、把其他的資料型別轉換為number型別

    Number()->嚴格

    parseFloat/parseInt ->非嚴格

   parseFloat/parseInt ->非嚴格

  然後數字類型在判斷是否為有效的數字

    例如:

    Number("12px"); ->NaN

   false

    規律:

   1)將布林類型轉換為數字的話true->1  false->0

    2)轉換為數字的話true->1  false->0

    2)以數字為數字undefined=NaN

    3)把[]轉換成數字先呼叫陣列的toString方法把[]->"",然後在使用Number方法把""->0

2、把其他的資料型別轉換成布林類型

    Boolean

     !!

     ! 先轉換為布林類型,然後在取反

  alse

     ![]->false  ! ![]->true

    規則:

    只有0、NaN、null、undefined、""這五個轉換為布林類型的時候是false,其餘的轉換完成都是true🎠

  你的條件判斷中只是單獨的一個值,它是首先把1轉換布爾類型(->true),在判斷是真還是假,如果是真條件成立,反之條件不成立

if (1) { }
 if ("3px" * 3) {//->条件不成立 "3px" * 3=NaN ->false
 }
 if ("3px" + 3) {//->条件成立 "3px" + 3="3px3" ->true
 }

   

 "在JS中不僅僅是數學運算,遇到字串的時候屬於字串拼接

    "-、*、/"在JS中只能是數學運算,遇到不是number類型的要強制轉換為number進行數學性運算

3、兩個值進行比較(==比較的,===比較資料型別不一樣不會進行預設的轉換),如果左右兩邊的資料型別不一樣,我們需要遵循一套法則,進行預設的資料類型轉換

    value1==value2

    1)物件==物件  比較的是自己儲存的記憶體位址,如果記憶體位址不一樣就不相等  []==[]->false 各一個儲存的記憶體位址,如果記憶體位址不一樣就不相等  []==[]->false 每組陣列都是一個單獨的記憶體位址

    2)物件==字串呼叫toString方法,將物件轉換為字串  []==""->true   

    3)物件==布林  物件轉換為數字(toString- Number),布林也轉換為數字(true->1 false->0)

    []==false ->true  []->0 false->0 0==0->true

    ![]= =false -> ![]先把空數組轉換為布林類型然後在取反->false   false==false->true

    4)物件==數字物件轉換為數字  []==0->true  [ ]==1->false

    5)字串==布林  兩者都轉換為數字   "3"==true->false  "1"==true->true

    6)字串==數字  字元串轉換為數字  ""==0->true 

    7)布林==數位  布林轉換為數位  true==1->true  true==2->false

    8)null==undefined -true   ===undefined ->false 

      null/undefined和其他的任何值都不等  null==0->false  

    9)NaN==NaN ->false.

以上就是本文的全部內容,希望本文的內容對大家的學習或是工作能帶來一定的幫助,同時也希望多多支持PHP中文網!

更多淺談javascript中的資料類型轉換相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn