個人javascript學習筆記之數據類型

數據類型

ECMAscript有五種簡單數據類型:Undefined,Null,Boolean,String,Number,還有一種複雜數據類型Object,Object本質上是由一組無序的名值組成的.瀏覽器

1.Undefined

Undefined類型只有一個值,undefined.使用var聲明變量但未對其初始化時,這個變量的值就是undefined.函數

2.Null

Null只有一個值,null.
若是定義的變量準備在未來保存變量,那麼最好將該變量初始化爲null值,這樣只要直接檢查null值就能夠知道相應變量是否已經保存了一個對象的引用.例如:code

if (car != null){
//執行某些操做
}對象

3.Boolean

Boolean類型有兩個值true和false
要將一個值轉換爲Boolean類型,能夠調用轉型函數Boolean():
var word = "hello world";
var boolWord = Boolean(word);ip

各類類型轉換爲Boolean類型的轉換規則

數據類型 轉換爲true的值 轉換爲false的值
String 任何非空字符串 ""(空字符串)
Number 任何非0數值 0和NaN
Object 任何對象 null
Undefined n/a undefined內存

4.Number

4.1浮點數值

因爲保存浮點數值的內存空間的數值是整數數值的兩倍,所以ECMAscript會不失時機的將浮點數值轉換爲整數值.
若是小數點後面沒有任何數字,就按整數保存,若是浮點數值自己表示得就是一個整數,那麼就按整數保存(如1.0).
浮點數值最高精度是17位小數,但在算數計算時精度卻不如整數.例如
if(a+b==0.3){字符串

//不能這樣!!!
alert("0.3");

};
關於浮點數值計算會產生舍入偏差的問題,有一點須要明確:這是使用基於 IEEE754 數值的浮點計算的通病it

4.2數值範圍

[Number_MIN_VALUE,Number_MAX_VALUE]
在大多數瀏覽器中,這兩個值是[5e-324, 1.7976931348623157e+308]
若是獲得超出js的值,那麼這個值會被轉換爲 -/= Infifity
若是某次計算的的返回正或者負的Infinity值,那麼該值沒法參與下一次計算.變量

4.3.NaN

即Not a Number
這個數值用來表示一個要返回數值的操做數未返回數值的狀況,這樣就不會拋出錯誤了.
任何涉及NaN的操做都會返回NaN(如NaN/10)
NaN與任何值都不相等,包括NaN
isNaN();
任何不能轉換爲數值的都返回true
alert(isNaN(NaN)); //true
alert(isNaN(10)); //false(10是一個數值)
alert(isNaN("10")); //false(能夠被轉換成數值 10)
alert(isNaN("blue")); //true(不能轉換成數值)
alert(isNaN(true)); //false(能夠被轉換成數值 1)數據類型

4.4.數值轉換

有三個函數能夠把非數值轉換爲數值
Number();//能夠把任何類型轉換爲數值
//下面兩個只能把字符串轉換爲數值
parseInt() ;
parseFloat();

Number()轉換規則
Boolean: true -> 1 false -> 0
null: 0
undefined: NaN
若是是字符串:

若是隻包含數字 將其轉換爲十進制數字 011 -> 11  1.1->1.1 01.1 -> 1.1
空字符串 -> 0
其餘字符 -> NaN

若是是對象:

則調用對象的 valueOf()方法,而後依照前面的規則轉換返回的值。若是轉換 的結果是 NaN,則調用對象的 toString()方法,而後再次依照前面的規則轉換返回的字符 串值

5.String

字符串能夠由雙引號或者單引號表示
字符串一旦建立,它的值就不能改變.要改變某個變量保存的字符串,首先要銷燬原來字符串,再用一個包含新值的字符串填充該變量:
var lang ="hello";
var hd = lang + "world";

轉換爲字符串

toString();
String();

var a =111;
a.toString();
多數狀況下調用toStiring不用傳遞參數,但在調用數值的toString()方法時,能夠傳遞一個參數:
var num = 10;
alert(num.toString());//10
alert(num.toString(2));//1010 2進制

在不知道轉換的值是否是null或者undefined的狀況下,還可使用轉型函數String();

若是值有toString()方法,則調用toString()
若是值是null,則返回"null"
若是值是undefined,則返回"undefined"
var value = 10;
alert(String(value));//"10"

要把某個值轉換爲字符串,可使用加號操做符(3.5 節討論)把它與一個字符 串("")加在一塊兒。

6.Object

ECMAScript中的對象其實就是一組數據和功能的集合。對象能夠經過執行 new 操做符後跟要建立 的對象類型的名稱來建立。而建立 Object 類型的實例併爲其添加屬性和(或)方法,就能夠建立自定 義對象,以下所示:

var o = new Object();

相關文章
相關標籤/搜索