国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript中使用Object.prototype.toString判斷是否為數組

2024-05-06 16:18:01
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了JavaScript中使用Object.prototype.toString判斷是否是數組,本文講解了Object.prototype.toString相關知識,并給出了判斷數組的實現代碼,使用本文方法同樣可以判斷javascrpty的其它數據類型,需要的朋友可以參考下
 

為什么要用Object.prototype.toString而不是Function.prototype.toString或者其它?這是和他們的toString解釋方式有關系的。下面是ECMA中對Object.prototype.toString的解釋:

復制代碼代碼如下:

Object.prototype.toString( )

 

When the toString method is called, the following steps are taken:
1. Get the [[Class]] property of this object.
2. Compute a string value by concatenating the three strings “[object “, Result (1), and “]”.
3. Return Result (2)


其過程簡單說來就是:1、獲取對象的類名(對象類型)。2、然后將[object、獲取的類名、]組合并返回。
ECMA中對Array有如下說明:
復制代碼代碼如下:

The [[Class]] property of the newly constructed object is set to “Array”.

因此我們用如下代碼來檢測數組:
復制代碼代碼如下:

function isArray(o) {   return Object.prototype.toString.call(o) === '[object Array]';  }  

這種方式既解決了instanceof存在的跨頁面問題,也解決了屬性檢測方式所存在的問題,實在是一種妙招,一個很好的解決方案。
除此之外,這種解決辦法也可以應用于判斷Date,Function等類型的對象。
 
另外還有幾個方法:
復制代碼代碼如下:

var arr = []; return arr instanceof Array;  

如果有其他好的方法不妨貼出來。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 靖江市| 衡水市| 托里县| 宜兰县| 拉孜县| 桐庐县| 金阳县| 湘阴县| 新干县| 资源县| 新巴尔虎右旗| 延津县| 乐都县| 灵璧县| 茶陵县| 韶山市| 镇安县| 东港市| 资溪县| 东宁县| 毕节市| 金溪县| 门头沟区| 甘洛县| 轮台县| 宜春市| 武穴市| 汾西县| 镇雄县| 通道| 秦皇岛市| 广德县| 前郭尔| 都江堰市| 文昌市| 兴文县| 怀来县| 通海县| 讷河市| 诸城市| 南召县|