js數據類型轉換

js數據類型轉換spa

 

數據類型轉換要先說下typeof屬性。字符串

typeof屬性做用:判斷數據類型。string

例如: console.log(typeof "aaa");獲得string。console

var b=null;console.log(typeof b); 獲得object。class

 

1.強制轉換(主動將數據的類型強制轉換爲某種類型)object

(1)String(數據) 強轉爲字符串數據類型

例如數據

var num=null;類型轉換

var a=String(num);co

console.log(a); //null

console.log(typeof num); //object

console.log(typeof a); //string

 

(2)數據.toString(進制) 強轉爲任意進制的字符串

null和undefined是不能轉換的,

toString能夠將任何數字轉換爲任意進制,進制必須大於等於2而且小於等於36,也就是最小是2進制,最大是36進制,由於數字字母0~9+A~F有36個。

例如

var num=10;

var a=num.toString(2);

console.log(a); //1010

console.log(typeof num); //number

console.log(typeof a); //string

 

(3)數據.toFixed(小數點後幾位) 強轉爲四捨五入保留位數的字符串,可是有精度偏差

例如

var num=10.35;

var a=num.toFixed(1);

console.log(a); //10.3

 

(4)Number(數據) 強轉爲數值

NaN(非數值 類型是number)

純字符---> NaN

純數字--->數字

部分數字,部分字符--->NaN

布爾值--->數字 true--->1 false--->0

undefined--->NaN

null--->0

 

例如

var str="你好"; //純字符 NaN

 

var str="12"; //純數字 數字

 

var str="1a"; //部分數字,部分字符 仍是NaN

 

var str=""; //0

 

var str=" "; //0

 

var num=Number(str);

console.log(num);

 

(5)parseInt(數據,進制) 強轉爲整數

能夠將指定進制字符串轉換爲10進制數值,是toString()逆轉換。

若是沒指定進制,則表示將10進制字符串轉換爲10進制數值。

 

純字符---> NaN

純數字--->數字

部分數字,部分字符--->經過parseInt轉換數值能夠從開始轉換到字符前爲止變成數值,若是第一位是字符,返回NaN

布爾值--->NaN

undefined--->NaN

null--->NaN

 

例如

var str="你好"; //NaN

 

var str="20.78";

var num=parseInt(str); //20,若是 第二個沒有填值,則表示10進制數值轉換爲10進制數值

 

var str="1010";

var num=parseInt(str,2);//10,將2進制字符串轉換爲10進制數值

 

var str="16a";//16

var num=parseInt(str);//第二個沒有填值,按照10進制轉換 16

 

var str="a16";// NaN

 

(6)parseFloat(數據,進制); 強轉爲小數

強轉小數和parseInt相似,只不過能夠保留小數位

 

(7)Boolean(數據) 強轉爲布爾值

"" 0 false,undefined,null,NaN 轉換爲布爾值都會變成false,除此以外轉換都是true。

例如

var a=" ";

console.log(Boolean(a)); //true

 

var b=3;

var c=3;

console.log(Boolean(b-c)); //false

 

var str="0a";

console.log(Boolean(str)); //true

 

2.隱式轉換(當數據類型不相同時,作數據的運算,就會自動將兩端的數據轉換爲相同類型而後運算,這是隱式轉換,隱式轉換聽從與 String() Number() Boolean() )

(1)+

字符相加 就是將字符首尾相連,字符合並

例如

var a="a";

var b="b";

console.log(a+b); //ab

 

 

若是字符和非字符相加,會自動將非字符隱式轉換爲字符 String()

例如

var a=6;

var b="a";

console.log(a+b); //6a,這裏將a隱式轉換爲字符串,而且相加首尾相連

 

非字符相加,按照隱式轉換爲數值,進行數值算術運算相加

var a=6;

var b=true;

console.log(a+b); //7

 

 

(2)- * / %

- * / % 都是隱式轉換爲數值運算 無論有沒有字符

例如

var a=6;

var b="a";

console.log(a-b);//減法會隱式轉換將a和b都轉換爲數值 6-NaN  獲得NaN。

相關文章
相關標籤/搜索