JavaScript 資料型別上

2021-06-23 01:06:54 字數 4243 閱讀 7849

一 簡單資料型別

ecmascript 中有5 種簡單資料型別:undefined、null、boolean、number 和string。

還有一種複雜資料型別——object。

ecmascript 不支援任何建立自定義型別的機制,所有值都成為以上6 中資料型別之一。

二 typeof操作符

用法 typeof ***

typeof 操作符可以操作變數,也可以操作字面量。雖然也可以這樣使用:typeof(box),

但,typeof 是操作符而非內建函式。ps:函式在ecmascript 中是物件,不是一種資料型別。

所以,使用typeof 來區分function 和object 是非常有必要的。

三 undefined 型別

undefined型別只有乙個值,即特殊的undefined。在使用var變數前,但沒有對其初始化時,這個變數就是undefined。

var box;

alert(box);

注意:未初始化的變數與根本不存在的變數是不一樣的。

四  null型別

null 型別是乙個只有乙個值的資料型別,即特殊的值null。它表示乙個空物件引用(指標),而typeof 操作符檢測null 會返回object。

var box = null;

alert(typeof box);

由於undefined 和null 兩個值的比較是相等的,所以,未初始化的變數和賦值為null 的

變數會相等。這時,可以採用typeof 變數的型別進行比較。但,建議還是養成編碼的規範,

不要忘記初始化變數。

var box;

var car = null;

alert(typeof box == typeof car)

五 boolean型別

雖然boolean 型別的字面量只有true 和false 兩種,但ecmascript 中所有型別的值都有

與這兩個boolean 值等價的值。要將乙個值轉換為其對應的boolean 值,可以使用轉型函式

boolean()。

var hello = 'hello world!';

var hello2 = boolean(hello);

alert(typeof hello);

上面是一種顯示轉換,屬於強制性轉換。而實際應用中,還有一種隱式轉換。比如,在

if 條件語句裡面的條件判斷,就存在隱式轉換。

var hello = 'hello world!';

if (hello) else

資料型別

轉換為true的值

轉換為false的值

boolean

true

false

string

任何非空字元

空字元number

任何非零數字值(包括無窮大)

0和nan

object

任何物件

null

undefined

undefined

六 number

要想確定乙個數值到底是否超過了規定範圍,可以使用isfinite()函式。如果沒有超過,

返回true,超過了返回false。

var box = 100e1000;

alert(isfinite(box)); //返回false 或者true

nan,即非數值(not a number)是乙個特殊的值,這個數值用於表示乙個本來要返回數

值的運算元未返回數值的情況(這樣就不會丟擲錯誤了)。

比如,在其他語言中,任何數值除

以0 都會導致錯誤而終止程式執行。但在ecmascript 中,會返回出特殊的值,因此不會影

響程式執行。

var box = 0 / 0; //nan

var box = 12 / 0; //infinity

var box = 12 / 0 * 0; //nan

可以通過number.nan 得到nan 值,任何與nan 進行運算的結果均為nan,nan 與自

身不相等(nan 不與任何值相等)。

alert(number.nan); //nan

alert(nan+1); //nan

alert(nan == nan) //false

ecmascript 提供了isnan()函式,用來判斷這個值到底是不是nan。isnan()函式在接

收到乙個值之後,會嘗試將這個值轉換為數值。

alert(isnan(nan)); //true

alert(isnan(25)); //false,25 是乙個數值

alert(isnan('25')); //false,'25'是乙個字串數值,可以轉成數值

alert(isnan('lee')); //true,'lee'不能轉換為數值

alert(isnan(true)); //false true 可以轉成成1

有3 個函式可以把非數值轉換為數值:number()、parseint()和parsefloat()。number()

函式是轉型函式,可以用於任何資料型別,而另外兩個則專門用於把字串轉成數值。

alert(number(true)); //1,boolean 型別的true 和false 分別轉換成1 和0

alert(number(25)); //25,數值型直接返回

alert(number(null)); //0,空物件返回0

alert(number(undefined)); //nan,undefined 返回nan

由於number()函式在轉換字串時比較複雜且不夠合理,因此在處理整數的時候更常

用的是parseint()。

alert(parsetint('456lee')); //456,會返回整數部分

alert(parsetint('lee456lee')); //nan,如果第乙個不是數值,就返回nan

alert(parseint('12lee56lee')); //12,從第一數值開始取,到最後乙個連續數值結束

alert(parseint('56.12')); //56,小數點不是數值,會被去掉

alert(parseint('')); //nan,空返回nan

parsefloat()是用於浮點數值轉換的,和parseint()一樣,從第一位解析到非浮點數值位置。

alert(parsefloat('123lee')); //123,去掉不是別的部分

alert(parsefloat('0xa')); //0,不認十六進製制

alert(parsefloat('123.4.5')); 只認乙個小數點

alert(parsefloat('0123.400')); 去掉前後導

alert(parsefloat('1.234e7')); //12340000,把科學技術法轉成普通數值

七 string型別

如果在轉型之前不知道變數是否是null 或者undefined 的情況下,我們還可以使用轉型

函式string(),這個函式能夠將任何型別的值轉換為字串。

var box = null;

alert(string(box));

ps:如果值有tostring()方法,則呼叫該方法並返回相應的結果;如果是null 或者

undefined,則返回"null"或者"undeinfed"。

八 object

ecmascript 中的物件其實就是一組資料和功能的集合。物件可以通過執行new 操作符

後跟要建立的物件型別的名稱來建立。

var box = new object();

object()是物件構造,如果物件初始化時不需要傳遞引數,可以不用寫括號,但這種方

式我們是不推薦的。

var box = new object;

object()裡可以任意傳參,可以傳數值、字串、布林值等。而且,還可以進行相應的

計算。var box = new object(2); //object 型別,值是2

var age = box + 2; //可以和普通變數運算

alert(age); //輸出結果,轉型成number 型別了

既然可以使用new object()來表示乙個物件,那麼我們也可以使用這種new 操作符來創

建其他型別的物件。

var box = new number(5); //new string('lee')、new boolean(true)

alert(typeof box); //object 型別

JavaScript 資料型別

變數 宣告區域性變數 varmessage 宣告全部變數 message typeof 例如 var message some string alert typeof message string alert typeof message string alert typeof 95 number ...

Javascript資料型別

ecmascript中有5種簡單資料型別 也稱為基本資料型別 1.undefined 該型別只有乙個值,即undefined。在使用var宣告但未初始化時,這個變數就是undefined 2.null 該型別只有乙個值,即null。null undefined 3.boolean 4.number ...

JavaScript資料型別

undefined派生於null,因此在使用 進行比較時會返回true 沒有必要將變數值顯示宣告undefined 宣告空物件時應將其值賦值為nullundefined與null的關係 3 boolean true為真,false為假 true不一定 1,false不一定 0 使用boolean 進...