日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Javascript判断object还是list/array的类型(包含javascript的数据类型研究)

發布時間:2023/12/19 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Javascript判断object还是list/array的类型(包含javascript的数据类型研究) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前提:先研究javascript中的變量有幾種,參考:

http://www.w3school.com.cn/js/js_datatypes.asp

http://glzaction.iteye.com/blog/1285147

測試1:

typeof關鍵字

var obj= {test:'test'};

typeof obj;//輸出object

var list = [{test:'test'}];

typeof list;//輸出object

var str = 'str';

typeof str;//輸出string

var i = 1;

typeof i;//輸出number

var b = false;

typeof b;//輸出boolean

var n = null;

typeof n;//輸出object

n==null;//輸出true

var n;

typeof n;//輸出undefined

直接輸出一個沒有定義的變量

typeof a;//輸出undefined

function func(){}

typeof func;//輸出function

以上可以發現,只能判斷list和obj同時輸出了object

在判斷某個對象是否為指定類型時,可以用==或者===,比如:typeof func === 'function'或者typeof func == 'function'

測試2:

Object.prototype.toString.call( obj )

var obj= {test:'test'};

Object.prototype.toString.call( obj );//輸出[object Object]

var list = [{test:'test'}];

Object.prototype.toString.call( list );//輸出[object Array]

var str = 'str';

Object.prototype.toString.call( str );//輸出[object String]

var i = 1;

Object.prototype.toString.call( i );//輸出[object Number]

var b = false;

Object.prototype.toString.call( b );//輸出[object Boolean]

var n = null;

Object.prototype.toString.call( n );//輸出[object Null]

n==null;//輸出true

var n;

Object.prototype.toString.call( n );//輸出[object Undefined]

直接輸出一個沒有定義的變量

Object.prototype.toString.call( a );//輸出:Uncaught ReferenceError: n1 is not defined,會報異常,阻止執行下面

function func(){}

Object.prototype.toString.call( function );//輸出[object Function]

這個方法可以很明確的直到obj和list的類型

判斷時使用Object.prototype.toString.call( list )==='[object Array]'或者Object.prototype.toString.call( list )=='[object Array]',==或者===一樣的效果。

測試3:

如果使用jquery,可以使用$.isArray(obj)的方法,如下:

var a = ["A", "AA", "AAA"]; if($.isArray(a)) {console.log("a is an array!"); } else {console.log("a is not an array!"); }

但是測試發現,只能判斷數組,沒有判斷對象的方法。

測試4:

instanceof 關鍵字

var obj= {test:'test'};

var str = 'str';

var i = 1;
var b = false;

var list = [{test:'test'}];

var n = null;

function func(){}

通過測試,使用如:obj instanceof Object的形式,只能是判斷兩種類型Object和Array,其中Boolean、Number、String可以判斷,但是會返回false,如上面i和b變量;如果判斷為null或者undefind會報Uncaught TypeError: Right-hand side of 'instanceof' is not an object這樣的錯誤。

測試5:

直接通過Array.isArray(obj),javascript的原生方法,不過這個只能判斷數組。

測試5:

通過obj.constructor關鍵字

var obj= {test:'test'};

var str = 'str';

var i = 1;
var b = false;

var list = [{test:'test'}];

var n = null;

function func(){}

通過測試,使用如:str == String.constructor的形式,只能判斷Object、Array、String、Boolean、Number,對于null、function、undefind這些會報異常。

?

參考:

http://stackoverflow.com/questions/4775722/check-if-object-is-array

http://www.jb51.net/article/21945.htm

總結

以上是生活随笔為你收集整理的Javascript判断object还是list/array的类型(包含javascript的数据类型研究)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。