1. 程式人生 > >js-資料型別

js-資料型別

 

ECMAScript中有五種資料型別(也稱為基本資料型別)

  1. Undefined
  2. Null
  3. Boolean
  4. Number
  5. String

和一種複雜的資料型別Object

 

如果我們想知道給定變數的資料型別,可以用typeof操作符

下面介紹一下它的用法

 

var myname = “Hello word”;

alert(typeof(myname));    //”String”

alert(typeof myname));    //”String”

alert(typeof 66);        //”Number”

 

從上面的程式執行就可以看出來,typeof操作符的運算元可以是變數,也可以是一個數字字面量,程式中的圓括號不是一定要加

 

  • Undefined型別

它的英文意思就是不明確的,為下定義的。不錯在ECMScript中,Undefined型別就只有一個值,即特殊的undefined,我們在使用var宣告變數但未對其加以初始化時,這個變數的值就是undefined

 

var myname;

alert(message == undefined);   //true

 

二Null型別

Null型別同樣也只有一個值,null.

var money = null;

alert(typeof money); //object

 

這裡為什麼會返回一個”object”呢?原因是null 從邏輯角度上來看就是一個空物件指標

 

三Boolean

該型別有兩個字面值:True和False。我們可以對任何資料型別的值呼叫Boolean()呼叫Boolean()函式

 

四、Number型別

Number型別使用IEEE754格式來表示整數和浮點數值。

整數可以通過十進位制、八進位制、十六進位制的字面量來表示。其中八進位制字面量在嚴格模式下無效。

1.在表示浮點數值時,該數值中必須包含一個小數點,並且小數點後面必須至少有一位數字。小數點前面可以沒有整數。不推薦這種寫法。對那些極大或極小的數值,可以用e表示法(即科學計數法)表示的浮點數值表示。

 

2.ECMAScript能夠表示的最小數值儲存在Number.MIN_VALUE中,最大的數值儲存在Number.MAX_VALUE中。想要確定一個數值是不是有窮的,可以使用isFinite()函式

 

3.NaN

NaN即表示一個非數值,這個數值用於表示一個本來要返回數值的運算元未返回數值的情況。任何涉及NaN的操作都會返回NaN。NaN與任何值都不想等,包括NaN本身。我們可以通過isNaN()函式來確定這個引數是否“不是數值”。

 

4.數值轉換

我們可以利用Number()、parseInt()、parseFloat()

具體使用方法這裡不做詳細說明,介紹幾個例子

Number()使用方法

var  num1=Number(“hhhh”);  //NaN

var  num2=Number(“ ”);  //0

var num3=Number(“011”); //11 忽略其前導0

var num4=Number(true);   //1

 

parseInt()使用方法

var num1 = parseInt(“1234blue”);   //1234

var num2 = parseInt(“ ”);          //NaN

var num3 = parseInt(“0xA”);       //10 (十六進位制)

 

 

五、String型別

String型別用於表示由零或多個16為Unicode字串組成的字元序列,即字串。字串可以由雙引號(”)或者(‘)表示

  1. 字元字面量

String資料型別包含一些特殊的字元字面量,也叫轉義序列,用於表示非列印字元。如\n換行

我們可以通過length屬性來獲得字串的長度

  1. ECMAScript中的字串是不可變的,字串一旦建立,它們的值就不能改變。要改變某個變數儲存的字串,首先要銷燬原來的字串,然後再用另一個包含新值的字串填充該變數

如 var lang = “Java”;

   Lang = lang +”Script”;

  1. 轉換為字串

把一個值轉換為字串有兩種方式,第一種是使用toString()方法(null和undefined值沒有這個方法)在不知道是不是null或undefined的情況下,還可以使用轉型函式String(),

這個函式能夠將任何型別的值轉換為字串

 

六、Object型別

ECMAScript中的物件其實就是一組資料和功能的集合。物件可以通過執行new操作符後跟要建立的物件的名稱來建立。如:

var obj = new Object();

 

可以省略後面的圓括號,但不推薦

在ECMAScript中,Object型別是所有它的例項的基礎。也就是說,Object型別所具有的任何屬性和方法也同樣存在與更具體的物件中。

Object的每個例項都具有下列屬性和方法

constructor:儲存著用於建立當前物件的函式。

 

hasOwnProperty(propertyName):用於檢查給定的屬性在當前物件例項中(而不是在例項的原型中)是否存在。其中引數名(propertyName)必須以字串形式指定

 

isPrototypeOf(object):用於檢查傳入的物件是否是當前物件的原型

 

propertyIsEnumerable(propertyName):用於檢查給定的屬性是否能夠使用for-in語句來列舉。

與hasOwnProperty()方法一樣,作為引數的屬性名必須以字串形式指定

 

toLocaleString():返回物件的字串表示,該字串與執行環境的地區對應

 

toString():返回物件的字串來表示

 

valueOf():返回物件的字串、數值或布林值表示。通常與toString()方法的返回值相同。