JS中的型別識別

2022-08-30 02:48:11 字數 2594 閱讀 9101

js為弱型別語言,所以型別識別對js而言尤為重要,js中常用的型別識別方法有4種:typeof、object.prototype.tostring、constructor和instanceof。

(1)typeof可以識別標準型別(null除外),不能識別具體的物件型別(function除外),舉例如下:

1 console.log(typeof("tom"));  //

"string"

2 console.log(typeof(12)); //

"number"

3 console.log(typeof(true)); //

"boolean"

4 console.log(typeof(undefined)); //

"undefined"

5 console.log(typeof(null)); //

"objectl" null被識別為object

6 console.log(typeof()); //

"object"

7 console.log(typeof(function(){})); //

"function"

(2)object.prototype.tostring可以識別標準型別以及內建物件型別,不能識別自定義型別,舉例如下:

先封裝乙個函式實現object.prototype.tostring功能。

1

function

type(obj)

4 console.log(type(1));//

"number"

5 console.log(type("abc"));//

"string"

6 console.log(type(true));//

"boolean"

7 console.log(type(undefined));//

"undefined"

8 console.log(type(null));//

"null"

9 console.log(type({}));//

"object"

10 console.log(type(new date));//

"date"

11 console.log(type(function(){}));//

"funciton"

12 console.log(type());//

"array"

13function

point(x,y)

17 console.log(type(new point(1,2)));//

"object" 自定義型別不能識別

(3)constructor是物件原型上面的乙個屬性,它指向構造器本身,constructor可以識別標準型別(undefined/null除外),可以識別內建物件型別,可以識別自定義物件型別,舉例如下:

1

//標準型別

2 console.log("tom".constructor == string);//

true

3 console.log((1).constructor == number);//

true

4 console.log(true.constructor == boolean);//

true

5 console.log({}.constructor == object);//

true6//

內建型別物件

7 console.log(.constructor == array);//

true8//

自定義物件

9function

person(name)

12 console.log(new person("tom").constructor == person);//

true

(4)instanceof可以識別內建物件型別,不能識別原始型別,可以識別自定義物件型別,舉例如下:

1

//識別內建物件型別

2 console.log( instanceof array);//

true3//

不能識別原始型別

4 console.log(1 instanceof number);//

false

5 console.log("tom" instanceof string);//

false6//

能識別自定義物件型別及父子型別

7function

point(x,y)

11function

circle(x,y,r)

15 circle.prototype = new

point();

16 circle.prototype.constructor =circle;

17var c = new circle(1,1,2);

18 console.log(c instanceof circle);//

true

19 console.log(c instanceof point);//

true

C 中的型別轉換與型別識別 1

c 基礎內容,不值一提 author jacky wu 2006 4 17 引用該文章,須註明其出處 c 中的型別轉換與型別識別 c 中型別轉換有很多,從簡單的內部型別的自動轉換到複雜的自定義類的型別轉換,以及多型方式的 型別轉換 越來越複雜,讓我等小輩看的是眼花繚亂,不得已,花點時間理清思路,以後...

JS中型別的檢測

在js開發中,經常需要檢測乙個變數的型別。現在就總結一下常見的檢測變數型別的方法,以及它們的適用場景。一 typeof 要檢測乙個變數是不是基本資料型別,typeof是最佳的工具。也就是說,typeof是確定乙個變數是字串 數值 布林值還是undefined的最佳工具。但如果變數是乙個物件或者nul...

JS中的型別轉換

1 隱式型別轉換 如果相等操作的兩個變數不是同一型別,那麼相等運算子會嘗試進行一些型別轉換 比較運算子。運算元可以是任何型別,但是只有數字和字串才能真正執行比較操作。減操作符將兩個運算元都轉換為數字。加操作符,如果乙個運算元是字串,那麼另外乙個運算元也會轉換為字串。一元加會將其運算元轉換為數字。轉換...