1. 程式人生 > >JS中的數據類型和轉換

JS中的數據類型和轉換

整體 分別是 布爾 nbsp 乘除 浮點型 als 屬性和方法 一中

一、JS中的數據類型

js中的數據類型可以分為五種:number 、string 、boolean、 underfine 、null。

number:數字類型 ,整型浮點型都包括。

string:字符串類型,右數字字母字符串以及標點符號組成,必須放在單引號或者雙引號中。

boolean:布爾類型,只有true和false兩種值。

underfine:未定義,一般指的是已經聲明,但是沒有賦值的變量,如var a;

null:空對象類型,var a = null,和var a=""有區別;

object:對象,對象就是把一些彼此相關的屬性和方法集合在一起構成的一個數據實體,在js常見的有window,document,array等。

NaN:他是表示不是數字值的特殊值,可以理解為Number的一種特殊類型,只有當在js運算中發生數據類型轉換時提示,isNaN()方法是特有的對數據進行判斷的 ,如果是數字返回false,不是數字返回true。

二、數據類型轉換

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

強制轉換:

利用js提供的函數parseInt() ,parseFloat() ,Number(),Boolean()進行數據轉換,顧名思義,前兩個分別是對數據進行解析轉換,前者是整數,後者是浮點數。他們解析的原則是從前往後進行解析,盡其所能。若存在有能識別的數字就解析,如果第一位就不是數字則返回NaN.Number則是對整體進行判斷,是數字返回數字,否則NaN.Boolean()則是對是否存在和真假進行判斷進行判斷。

ParseInt():

parseInt("123");//123

parseInt("+123");//123

parseInt("-123");//123

parseInt("12.3元")//12

parseInt("abc");//NaN

parseInt([1,2])//1

parseInt([1,2,4])//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"); //returns 10

parseInt("010",2);//2 parseInt("010", 8); //returns 8 parseInt("010", 10); //returns 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():

alert(123);//123

Number("123");//123

Number("+123");//123

Number("12.3");//12.3

alert(12.3元);//false

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()則是傳入的所有數據類型轉換為字符串。

//和toString()方法的區別是

typeof String(null)//String

typeof String(undefined)//String

隱式類型轉換:

隱式類型轉換和java中大不相同,在js中數據類型不嚴格,沒有浮點和整型,這裏的隱式類型轉換指的是字符串和數值類型之間的轉換,在進行字符串和數字之間進行減乘除取模運算或者進行比較運算時,他會自動把字符串轉換為數字。轉換數字的默認方法是調用Number(),進行加法運算則是將數字看成字符串進行拼接. var x = "123";

var y = 121;

alert(x+y);//"123121;

alert(x-y);//2

alert(x*y);//14883

alert(x/y);//1.016528256198346

alert(x%y);//2

alert(x>y);//true

alert(x==y);//false

alert("123a">y);//false詭異

js只一中弱類型的腳本語言,語法相對與java等高級編程語言來說不夠嚴格,所以對於它的數據類型和之間的轉換很容易混淆,以上僅是個體會,如有錯誤,歡迎指出!

JS中的數據類型和轉換