js 檢測資料型別的三種方式

2022-09-06 12:03:22 字數 2060 閱讀 7666

1、typeof

typeof 用以獲取乙個變數或者表示式的型別,typeof 一般只能返回如下幾個結果:

typeof "john"                 //

返回 string

typeof 3.14 //

返回 number

typeof nan //

返回 number

typeof

false

//返回 boolean

typeof [1,2,3,4] //

返回 object

typeof //

返回 object

typeof

new date() //

返回 object

typeof

function () {} //

返回 function

typeof mycar //

返回 undefined (如果 mycar 沒有宣告)

typeof

null

//返回 object

請注意:

如果物件是 j**ascript array 或 j**ascript date ,我們就無法通過typeof來判斷他們的型別,因為都是 返回 object。

我們可以使用 typeof 來獲取乙個變數是否存在,如 if(typeof a!="undefined"){},而不要去使用 if(a) 因為如果 a 不存在(未宣告)則會出錯。

正因為 typeof 遇到 null,陣列,物件時都會返回 object 型別,所以當我們要判斷乙個物件是否是陣列時。

或者判斷某個變數是否是某個物件的例項則要選擇使用另乙個關鍵語法instanceof。

2、instanceof

可通過 instanceof 操作符來判斷物件的具體型別,語法格式:

var result = objectname instanceof objecttype

返回布林值,如果是指定型別返回 true,否則返回 false:

例:

arr = [1,2,3];

if(arr instanceof

array)

else

3、constructor 屬性

constructor屬性返回所有 j**ascript 變數的建構函式。

"john".constructor                 //

返回函式 string()

(3.14).constructor //

返回函式 number()

false.constructor //

返回函式 boolean()

[1,2,3,4].constructor //

返回函式 array()

.constructor //

返回函式 object()

new date().constructor //

返回函式 date()

function () {}.constructor //

返回函式 function()

你可以使用 constructor 屬性來檢視物件是否為陣列 (包含字串 "array"):

function

isarray(myarray)

你可以使用 constructor 屬性來檢視物件是否為日期 (包含字串 "date"):

function

isdate(mydate)

資料型別轉換三種方式

自動型別轉換需滿足的的條件 兩種型別必須相容 目標型別大於源型別 例如 int a 7 double b a 強制型別轉換需滿足的的條件 表示範圍大的資料型別要轉換為範圍小的資料型別。例如 double a 7.5 int b int a 說明 強制型別轉換和自動型別裝換適用於八種基本資料型別,而包...

js檢測資料型別的四種方式

js常見的資料型別分為兩種,第一種是基本資料型別 string number null undefined boolean symbol bigint 第二種是引用資料型別 object array regexp.常見的檢測資料型別方式 1 typeof 2 instanceof 3 constru...

三種方式獲取變數的資料型別

1.typeof 獲取變數的資料型別 獲取num變數的資料型別 var num 10 console.log typeof num 2.instanceof 判斷物件是不是某個型別 判斷物件是不是某個型別 var obj console.log obj instanceof object true ...