一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

javascript 有趣而詭異的數組

年前在重寫淘寶旺鋪里的會員卡腳本的時候,無意中發現了一個有趣的事情。代碼類似:
復制代碼 代碼如下:
var associative_array = new Array();
associative_array["one"] = "1";
associative_array["two"] = "2";
associative_array["three"] = "3";
if(associative_array.length > 0)
{ // to do}

會發現 associative_array.length 始終等于 0,當時有點迷惑,后來才知道這就像大家認為 IE 中支持 CSS 屬性 display:inline-block 一樣,純屬巧合和誤解。

實際上(引自《JavaScript “Associative Arrays” Considered Harmful》):

JavaScript arrays (which are meant to be numeric) are often used to hold key/value pairs. This is bad practice. Object should be used instead.

//大意:數組只支持數字的,鍵值對應使用于對象上。

There is no way to specify string keys in an array constructor. //在數組構造函數中無法定義字符串鍵值
There is no way to specify string keys in an array literal. //在數組字面量中無法定義字符串鍵值
Array.length does not count them as items. // Array.length 不會計算字符串鍵值
進一步窺探數組:

1、數組可以根據所賦的值自動調整大小
復制代碼 代碼如下:
var ar = [];
ar[2] = 1;
alert(ar.length)

發現這個數組的長度為 3,就像一個經過初始化的數組一樣。所有沒有賦值的數組對象,都將被定義為 undefined 。

擴展閱讀:

  • Javascript Array Fun》

2、可使用 “The Miller Device” 方法來判斷是否是數組

復制代碼 代碼如下:
function isArray(o) { return Object.prototype.toString.call(o) === '[object Array]';}

“The Miller Device” 的妙用不僅僅在于判斷數組:
復制代碼 代碼如下:
var is = {
types : ["Array","RegExp","Date","Number","String","Object"]
};

for(var i=0,c;c=is.types[i++];){
is[c] = (function(type){
return function(obj){
return Object.prototype.toString.call(obj) == “[object "+type+"]“;
}
})(c);
}

擴展閱讀:

  • 《The Miller Device》
  • 《isArray: Why is it so bloody hard to get right?》

JavaScript技術javascript 有趣而詭異的數組,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产线视频精品免费观看视频 | 精品小视频在线观看 | 97夜夜澡人人双人人人喊女 | 微拍秒拍99福利精品小视频 | 欧亚激情偷乱人伦小说视频 | 亚洲图片一区二区三区 | 免费观看色视频 | 精品亚洲成a人在线观看 | my blow jober act | 亚洲精品国产第1页 | 国产在线精品国自产拍影院同性 | 亚洲欧美人妖另类激情综合区 | wwwxx在线观看 | 伊人网在线免费视频 | 国产免费网 | 都市激情综合 | 国产成人禁片免费观看 | 亚洲免费三区 | 亚洲免费久久 | 在线免费一区 | 日韩图色| 好吊日在线观看 | 色呦呦在线播放 | 一区二区不卡在线观看 | 最新eeuss影院在线观看 | 热re66久久精品国产99re | 婷婷综合激情网 | 日本加勒比在线观看 | www午夜| 天天在线影院天天在线视频 | 91视频日韩 | 好吊操视频这里只有精品 | 久久久久久99精品 | 日韩精品首页 | 日本韩国三级在线 | 黄页视频在线观看 | 国产剧情在线视频 | 国产精品视频免费视频 | 国产精品拍自在线观看 | 国产精品午夜免费观看网站 | www.91麻豆|