typeof(數據)/ typeof 數據 判斷數據的數據類型,typeof返回的都是字元串 輸出結果類型有:number、string、boolean、 undefined、object、function。 註意點: ①typeof裡面的數據是null,輸出object,雖然null屬於原始值, ...
typeof(數據)/ typeof 數據 判斷數據的數據類型,typeof返回的都是字元串
輸出結果類型有:number、string、boolean、 undefined、object、function。
註意點:
①typeof裡面的數據是null,輸出object,雖然null屬於原始值,
但是系統會認為它是給對象占位置用得,歷史遺留問題。
②typeof裡面的數據是未聲明的變數,控制台不報錯,
輸出undefined,這也是未聲明變數唯一不報錯的地方。
————————————————————————————————————————————————————————————
類型轉換
顯示類型轉換:
Boolean() 除了0 、null 、undefined 、false 、""、 是false,其他都是true
Number(mix) undefined和只要有非數字(除了‘- +’)的字元串結果都為NaN,
parseInt(String ,[radix])
null、undefind、boolean的值為NaN。
radix參數:代表當前數據當前哪種進位數,並將該數據轉換成十進位數。
radix範圍為2-36.
當沒有radix參數時:
系統預設為是十進位。純字元的字元串、以非數字開頭的字元串返回的是NAN。
parseInt方法只能正常轉換純數字和以數字開頭的字元串。
parseInt方法從數字開始取直到小數點或非數字位結束。
當有radix參數時:
當不屬於十進位時,若數據為number或純數字字元串,會將該數據轉換成十進位數;
當大於十進位數時,純字元的字元串、以非數字開頭的字元串會先轉換成ascii碼然後轉換成十進位數。
parseFloat(String)
和parseInt相似,只是在數字和非數字的串中,從數字開始直到第一個小數點後一數字位結束。
String(mix) 任何數據類型都能轉換成字元串。
toString([radix]) undefined和null沒有toString方法。
radix參數:將十進位數轉換成當前進位數。
當數據為數字類型時,radix的作用是將數據a轉換成radix當前值的進位數的字元串。
————————————————————————————————————————————————————————
隱式類型轉換
————————————————
內部用Number()進行轉換集合
isNaN() 判斷數據a轉換成數字類型後是否為NaN。
++/-- 自增、自減 無論自增自減放前面或後面都是先進行Number(數據a)
轉換,再進行表達式的運算。
正負、-、*、/ 減、乘、除 判斷數據是數字還是NaN,若為數字則正常計算,若為NaN則直接輸出NaN。
> 、< 、>= 、<= 字元串和數字比較,則用Number()轉換成數字。
字元串和字元串比較則用ascii代碼比較
當1>2>3... 這種一個表達式中有多個比較運算符連寫時,逐個判斷,
true或false的個數為偶數則表達式為true,反之為false。
————————————————
內部用String進行轉換
+ 加法 當加號兩側只要有一個為字元串,先進行string類型轉換。
應用:將其他類型的數據加上一個空串就能變成字元串。
註意:當作為列印輸出時,即使是純數字的字元串與數字相加也還是做連接作用。
————————————————
內部用boolean()進行轉換集合
&&/||/! 與、或、非 判斷的時候對數據進行布爾值轉換,但是輸出結果是原值或表達式結果。
==、!= 數字相同的字元串和數字比較,為true, 1 == true和0 == false成立,
NaN == NaN 不成立,哪怕是不進行類型轉換的"絕對等於"在NaN面前也沒用,
這是唯一一個不等於任何東西的————非數。
註意點:undefined和null能轉換成number類型,但是他們兩個就是不能和數字作比較,因為比較的時候,他們不進行隱式類型轉換。
undefined == null 兩者能相等是系統內部進行的是布爾類型轉換。
———————————————
不發生類型轉換
=== / !== 絕對等於、絕對不等於
對於原始值來說,錶面上一模一樣就絕對等於,否則就絕對不等於, 但是NaN === NaN 為false
註意點:當引用值相比時,它們比的是引用地址,只要地址相等,絕對等於也成立。