麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 22:24:27
字體:
供稿:網(wǎng)友
怎樣判斷一個(gè)JavaScript變量是array還是obiect?
答案:
1、如果你只是用typeof來檢查該變量,不論是array還是object,都將返回‘objec'。
此問題的一個(gè)可行的答案是是檢查該變量是不是object,并且檢查該變量是否有數(shù)字長(zhǎng)度(當(dāng)為空array時(shí)長(zhǎng)度也可能為0)。
然而,參數(shù)對(duì)象【arguments object】(傳給制定函數(shù)的所有參數(shù)),也可能會(huì)適用于上述方法,技術(shù)上來說,參數(shù)對(duì)象并不是一個(gè)array。
此外,當(dāng)一個(gè)對(duì)象有a.length屬性的時(shí)候,這個(gè)方法也不成立。
復(fù)制代碼 代碼如下:

// Real array 正在的數(shù)組
var my_array = [];
// Imposter! 冒名頂替的!
var my_object = {};
my_object.length = 0;
// Potentially faulty 潛在的錯(cuò)誤
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、回答這個(gè)問題的另一個(gè)答案是用一個(gè)更加隱蔽的方法,調(diào)用toString( )方法試著將該變量轉(zhuǎn)化為代表其類型的string。
該方法對(duì)于真正的array可行;參數(shù)對(duì)象轉(zhuǎn)化為string時(shí)返回[object Arguments]會(huì)轉(zhuǎn)化失敗;此外,
對(duì)于含有數(shù)字長(zhǎng)度屬性的object類也會(huì)轉(zhuǎn)化失敗。
復(fù)制代碼 代碼如下:

// Real array 真正的數(shù)組
var my_array = [];
// Imposter! 冒名頂替的!
var my_object = {};
my_object.length = 0;
// Rock solid 堅(jiān)如磐石(檢驗(yàn)函數(shù))
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! 不是數(shù)組(array)!
is_this_an_array(my_object);

3、此外,在可能不可靠的多框架DOM環(huán)境中,instanceof是個(gè)完美合適的操作。
擴(kuò)展閱讀:"Instanceof Considered Harmful…"
http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray
復(fù)制代碼 代碼如下:

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

4、對(duì)于Javascript 1.8.5(ECMAScript 5),變量名字.isArray( )可以實(shí)現(xiàn)這個(gè)目的
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/isArray
復(fù)制代碼 代碼如下:

var my_array = [];
if (Array.isArray(my_array)) {
console.log('Congrats, you have an array!');
}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黄色免费播放网站 | 亚洲成人黄色片 | 欧美成年私人网站 | 蜜桃视频日韩 | 亚洲精品午夜视频 | 神马顶级推理片免费看 | 国产精品久久77777 | 欧美日韩1区2区3区 黄片毛片一级 | 亚洲人成网在线观看 | 福利四区| 少妇一级淫片免费放播放 | 精品国产91久久久久久久 | 国产九九热 | 日本道中文字幕 | 在线免费观看欧美 | 欧美日韩国产成人在线 | 黄色电影免费网址 | 国产一区二区二 | 国产一级淫片在线观看 | 青青操精品 | 亚洲第一成人在线观看 | 一级免费黄视频 | 91精品国产福利尤物免费 | 1级黄色毛片| 精品中文字幕视频 | 欧美 videos粗暴 | 91精品国产91| 中文黄色一级片 | 亚洲精品日韩色噜噜久久五月 | 久久久电影电视剧免费看 | 免费观看一级 | 日韩视频一区二区三区四区 | 久久综合九色 | 在线视频观看成人 | 激情大乳女做爰办公室韩国 | 日韩高清电影 | 国产羞羞视频在线观看免费应用 | 男人的天堂色偷偷 | 特大黑人videos与另类娇小 | 最新亚洲国产 | 牛牛视频在线 |