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

首頁 > 語言 > JavaScript > 正文

Javascript中判斷變量是數組還是對象(array還是object)

2024-05-06 15:50:36
字體:
來源:轉載
供稿:網友
怎樣判斷一個JavaScript變量是array還是obiect,或許有很多初學者對此不是很清楚吧,下面為大家詳細解答下,希望對大家有所幫助

怎樣判斷一個JavaScript變量是array還是obiect?
答案:
1、如果你只是用typeof來檢查該變量,不論是array還是object,都將返回‘objec'。
此問題的一個可行的答案是是檢查該變量是不是object,并且檢查該變量是否有數字長度(當為空array時長度也可能為0)。
然而,參數對象【arguments object】(傳給制定函數的所有參數),也可能會適用于上述方法,技術上來說,參數對象并不是一個array。
此外,當一個對象有a.length屬性的時候,這個方法也不成立。

復制代碼 代碼如下:


// Real array 正在的數組
var my_array = [];
// Imposter! 冒名頂替的!
var my_object = {};
my_object.length = 0;
// Potentially faulty 潛在的錯誤
function is_this_an_array(param) {
if (typeof param === 'object' && !isNaN(param.length)) {
console.log('Congrats, you have an array!');
}
else {
console.log('Bummer, not an array');
}
}
// Works 成功
is_this_an_array(my_array);
// Works, but is incorrect 成功了,但是不正確
is_this_an_array(my_object);


2、回答這個問題的另一個答案是用一個更加隱蔽的方法,調用toString( )方法試著將該變量轉化為代表其類型的string。
該方法對于真正的array可行;參數對象轉化為string時返回[object Arguments]會轉化失?。淮送?,
對于含有數字長度屬性的object類也會轉化失敗。

復制代碼 代碼如下:


// Real array 真正的數組
var my_array = [];
// Imposter! 冒名頂替的!
var my_object = {};
my_object.length = 0;
// Rock solid 堅如磐石(檢驗函數)
function is_this_an_array(param) {
if (Object.prototype.toString.call(param) === '[object Array]') {
console.log('Congrats, you have an array!');
}
else {
console.log('Bummer, not an array');
}
}
// Works 成功了
is_this_an_array(my_array);
// Not an array, yay! 不是數組(array)!
is_this_an_array(my_object);


3、此外,在可能不可靠的多框架DOM環境中,instanceof是個完美合適的操作。
擴展閱讀:"Instanceof Considered Harmful…"

復制代碼 代碼如下:


var my_array = [];
if (my_array instanceof Array) {
console.log('Congrats, you have an array!');
}


4、對于Javascript 1.8.5(ECMAScript 5),變量名字.isArray( )可以實現這個目的
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/isArray

復制代碼 代碼如下:


var my_array = [];
if (Array.isArray(my_array)) {
console.log('Congrats, you have an array!');
}

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

圖片精選

主站蜘蛛池模板: 河西区| 化德县| 锡林郭勒盟| 巩义市| 万盛区| 汨罗市| 奉贤区| 兖州市| 双流县| 瓦房店市| 江口县| 汉中市| 广安市| 塔城市| 宝丰县| 周宁县| 阳曲县| 琼结县| 泰宁县| 阿克苏市| 乐安县| 错那县| 乃东县| 外汇| 凤凰县| 和林格尔县| 新闻| 文安县| 九江市| 漳州市| 云阳县| 象山县| 定远县| 阳新县| 光山县| 舒兰市| 蕲春县| 乡城县| 文水县| 乐陵市| 平顶山市|