天天看點

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 = ;
a = String(a);
           

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

var a = ; a = a.toString();
undefined,null不能用toString。
           

1.3 轉boolean類型

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

注意:在進行boolean轉換的時候所有的内容在轉換以後結果都是true,

除了:false、”“(空字元串)、0、NaN、undefined。

二、隐式轉換

2.1 轉Number

var a = '';
a=+a;
           

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

2.2 轉string

var a = ;
a = a + '';
           

2.3 轉boolean

var a = ;
a = !!a;
           

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

3.1 數字和字元串使用+運算符

數字和字元串如果使用+運算符進行操作,那麼會将數字先轉換為字元串,然後進行

字元串連接配接操作:

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

3.2 布爾值參與的+運算符操作

如果有布爾型參與,那麼首先會将布爾值轉換為對應的數字或者字元串,然後再進行相應的

字元串連接配接或者算數運算。

var bool = true;
var num = ;
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”轉換成數字,然後再進行比較。

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

上面的代碼會分别将”1”和true轉換成數字,然後進行比較。

繼續閱讀