javascript中一共有六種型別:Number,String,Boolean,Undefined,Object,function.可以用typeof來查看宣告的變數的型別.注意,typeof是運算子,不是函式.(tips:建議用js寫代碼的時候,宣告變數后直接初始化,因為typeof對未宣告和未定義的變數都會回傳undefined,這樣就沒法區分這個變數未宣告還是未初始化)
如果有沒看懂的地方可以在評論區留言,我爭取一天內回復.
先簡單介紹下這五種基本型別
Boolean型別
Boolean對 " "(空字串),null,undefined,0,NaN,false是false,其他的都是true.
Null型別
Null型別只有一個值--null,null表示一個空物件指標,所以用typeof檢測null會得到object.
undefined值是派生自null的,所以alert(null==undefined)會回傳true.(tips:如果宣告的變數后面是要存盤物件的話,可以設定為null,這樣就會知道這個變數是否已經保存了一個物件的參考.)
Undefined型別
Undefined型別也只有一個值:undefined.對未宣告和未初始化的值使用typeof都會回傳undefined.
Number型別
浮點型:保存浮點型資料需要的記憶體空間是整數型別的兩倍,所以ECMAscript會將一個浮點型資料轉化為整型保存.比如:1.0(數字本身表示的就是整數), 10.(小數點后沒有數字)
NaN:用于表示一個本身應該回傳數值但是沒回傳數值的情況.呼叫isNaN的時候,會隱式地呼叫Number().
String型別
字串可以用" "或' '表示,任何字串的長度都可以通過訪問其length屬性取得,如果字串中包含雙位元組字符,那么length屬性不會精確地回傳字串中的字符數目.
顯示型別轉換:可以把非數值轉化為數值的函式:Number(),parseInt(),parseFloat().
一.Number(mix)
mix代表里面的引數可以是任意型別.Number(mix)表示把mix轉換成number型別,轉換后mix將變成Number型別,而mix轉換后的值只有兩種:具體轉換成的Number型別值和NaN.下面是六種型別的回傳情況.
(1)Boolean:true會回傳1,false會回傳0
(2)Number:回傳輸入的值
(3)Undefined:NaN
(4)String: 1.如果字串中是整數/浮點數的話,會將String轉化成整數/浮點數回傳.
2.如果是空字串,則回傳0.
3.如果字串里是16進制,則會轉換成十進制輸出.
4.如果字串中含有非數字的內容,則會回傳NaN.
(5)Object:會先呼叫valueOf(),如果轉換結果是NaN的話,則呼叫toString().
(6)Null:回傳0.
eg:var a = Number('666');
console.log(typeof(a)+":"+a);
//輸出結果為Number:666
eg:var a = Number(undefined);
console.log(typeof(a)+":"+a);
//輸出結果為Number:NaN
二.parseInt(String),parseInt(String,radix)
1.parseInt()在轉換字串時,會忽略字串前面的空格,直至找到第一個非空格字符,如果第一個字符不是空格或者負號,parseInt()會回傳NaN.
2.如果第一個字符是數字字符,parseInt()會繼續決議第二個字符,直到決議完所有字符,或者遇到了一個非數字字符.
eg:"123abc"會被轉換為123,且"abc"會被完全忽略.
eg:"123.456"會回傳"123"因為"."不是有效字符.
3.如果指定了parseInt的第二個引數,eg:parseInt("123",16)就會按照十六進制決議字串
三 .ParseFloat()
與parseInt()類似,只不過決議時第一個小數點有效,第二個小數點就無效了.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/301770.html
標籤:其他
