1. 程式人生 > >系統學習(javascript)_基礎(數據類型之間的轉換)

系統學習(javascript)_基礎(數據類型之間的轉換)

eof false () 指定 als 相對 高級 基數 參考

在js中數據類型轉換一般分為兩種,即強制類型轉換隱式類型轉換(利用javascript弱變量類型轉換)。


強制轉換:

  利用js提供的函數parseInt(),parseFloat(),Number(),Boolean()進行數據轉換,前兩個分別是對數據進行解析轉換,前者是整數,後者是浮點數。解析的原則是從前往後進行解析,盡其所能。若存在有能識別的數字就解析,如果第一位不是數字則返回NaN。Number則是對整體進行判斷,是數字返回數字,否則返回NaN。Boolean()則是內容強制轉換為布爾true或者false。

ParseInt():

  parseInt(123);//123

  parseInt(+123);//123

  parseInt(++123);//NaN

  parseInt(-123);//-123

  parseInt(--123);//NaN

  parseInt(“12.3元”);//12

  parseInt("abc");//NaN

  parseInt([1,2]);//1

  parseInt(" ");//NaN

該方法還有基模式,可以把二進制、八進制、十六進制或其他任何進制的字符串轉換成整數。基於parseInt()方法的第二個參數指定,對於含有前導的數則直接進行解析:

   parseInt("AA",16);//170

   parseInt(10,2);//2

   parseInt("10",8);//8

   parseInt("10",10);//10

  //含有前導

  parseInt("0xAA");//170

  //如果二進制數包含前導0,那麽最好采用基數2,不然默認以十進制解析

  parseInt("010");//10

  parseInt("010",2);//2

parseInt("010", 8);//8

parseInt("010", 10); //10

parseInt(null);//NaN

parseFloat():

parseFloat("123");//123

parseFloat("-123");//123

parseFloat("+123");//123

parseFloat("12.34");//12.34

parseFloat("12.35元");//12.35

parseFloat("12.23.122");//12.23

parseFloat("av");//NaN

parseFloat("0xAA");//0

parseFloat("0110");//110

parseFloat([1]);//1

parseFloat([2,3]);//2

parseFloat([]);//NaN

parseFloat(null);//NaN

Number():

Number("123");//123

Number("+123");//123

Number("12.3");//12.3

Number(true);//1

Number("12.3.4");//NaN

Number(" ");//0

Number("abc");//NaN

Number([]);//0

Number([1]);//1

Number([1,2]);//NaN

Number(new Object());//NaN

Number(null);//0

Boolean():不會對引號裏面的數字進行自動進行轉換。 

Boolean(1) ;//true

Boolean(0);//false

Boolean("1");//true

Boolean("0");//true

Boolean("abc");//true

Boolean(‘‘);//false

Boolean(‘ ‘);//true

Boolean([]);//true

Boolean([1]);//true

Boolean(null);//false

而String()則是傳入的所有數據類型轉換為字符串。

String()和toString()方法的區別

typeof String(null)//String

typeof String(undefined)//String

隱式類型轉換:

  隱式類型轉換和java中大不相同,在js中數據類型不嚴格,沒有浮點型和整型。

  隱式類型轉換指的是字符串和數值類型之間的轉換,在進行字符串和數字之間進行減乘除取模運算或者進行比較運算時,自動把字符串轉換為數字,轉換數字的默認方法是調用Number()。進行加法運算則是將數字看成字符串進行拼接

var x = "123";

var y = 121;

console.log(x+y);//"123121;

console.log(x-y);//2

console.log(x*y);//14883

console.log(x/y);//1.016528256198346

console.log(x%y);//2

console.log(x>y);//true

console.log(x==y);//false

console.log("123a">y);//false詭異

javascript只是一種弱類型的腳本語言,語法相對於java等高級編程語言來說不夠嚴格,所以對於它的數據類型之間的轉換很容易混淆。  

參考文章:https://www.cnblogs.com/liqiangchn/p/6915072.html

系統學習(javascript)_基礎(數據類型之間的轉換)