1. 程式人生 > >JavaScript之JS資料型別轉換

JavaScript之JS資料型別轉換

前言

在js中,資料型別轉換分為顯式資料型別轉換和隱式資料型別轉換。
JavaScript的資料型別分為六種,分別為null,undefined,boolean,string,number,object。
object是引用型別,其它的五種是基本型別或者是原始型別。我們可以用typeof方法列印
來某個是屬於哪個型別的。不同型別的變數比較要先轉型別,叫做型別轉換,
型別轉換也叫隱式轉換。隱式轉換通常發生在運算子加減乘除,等於,還有小於,大於等。。

一、顯式資料型別轉換

1.1 轉數字(Number型別)

1)Number轉換

var a = '123';
a = Number
(a);
  • 如果轉換的內容本身就是一個數值型別的字串,那麼將來在轉換的時候會返回自己。
  • 如果轉換的內容本身不是一個數值型別的字串,那麼在轉換的時候結果是NaN。
  • 如果要轉換的內容是空的字串,那以轉換的結果是0。
  • 如果是其它的字元,那麼將來在轉換的時候結果是NaN。

2)parseInt()

var a = '123';
a =  parseInt(a);
  • 忽略字串前面的空格,直至找到第一個非空字元,還會將數字後面的非數字的字串去掉。
  • 如果第一個字元不是數字符號或者負號,返回NaN。
  • 會將小數取整。(向下取整)

3)parseFloat();//浮點數(小數)

與parseInt一樣,唯一區別是parseFloat可以保留小數。

1.2 轉字串(String)

1)String()

var a = 123;
a = String(a);

2)toString()的方法來進行轉換(包裝類)

var a = 123; a = a.toString();
undefinednull不能用toString。

1.3 轉boolean型別

var a ='true'; a = Boolean(a);

注意:在進行boolean轉換的時候所有的內容在轉換以後結果都是true,
除了:false、”“(空字串)、0、NaN、undefined。

二、隱式轉換

2.1 轉Number

var a = '123';
a=+a;

加減乘除以及最餘都可以讓字串隱式轉換成number。

2.2 轉string

var a = 123;
a = a + '';

2.3 轉boolean

var a = 123;
a = !!a;

三、值型別之間的資料型別轉換

3.1 數字和字串使用+運算子

數字和字串如果使用+運算子進行操作,那麼會將數字先轉換為字串,然後進行
字串連線操作:

var text = 'asd';
var num = 123;
alert(text+num);

3.2 布林值參與的+運算子操作

如果有布林型參與,那麼首先會將布林值轉換為對應的數字或者字串,然後再進行相應的
字串連線或者算數運算。

var bool = true;
var num = 8;
console.log(bool + num);

上面的程式碼是先將true轉換為數字1,然後再進行算數加運算。

var bool = true;
var num = "8";
console.log(bool + num);

上面的布林值會被轉換為對應的字串形式”true”,然後再進行字串連線。

3.3 減法操作

如果進行減法操作,那麼兩個運算元都會先被轉換為數字,然後在進行算數運算。

var bool = true;
var num = "8";
console.log(bool - num)

true會被轉換為數字1,字串”8”會被轉換為數字8,然後進行算術運算。
乘,除,大於,小於跟減的轉換也是一樣.

3.4 ==等性運算 ###

undefined和null比較特殊,它們兩個使用==運算子返回值是true。

console.log(undefined==null);

其他值型別進行比較的時候都會將運算數轉換為數字

console.log("3"==3);

上面的程式碼會將字串”3”轉換成數字,然後再進行比較。

console.log("1"==true);

上面的程式碼會分別將”1”和true轉換成數字,然後進行比較。