欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript數(shù)組Array基礎(chǔ)介紹

 更新時間:2016年03月13日 11:00:40   投稿:hebedich  
本文主要是給大家簡單介紹了Array的相關(guān)基礎(chǔ)知識,到這里也算是能對Array有更全面的理解了,希望大家能夠喜歡,后續(xù)我們將繼續(xù)介紹關(guān)于array的內(nèi)容。

Javascript,一門神奇的語言,它的數(shù)組也同樣獨特。我們要去其糟粕,取其精華,把常用的最優(yōu)實踐總結(jié)出來。如有錯誤,請指出。

javascript數(shù)組是一種類數(shù)組的對象,擁有對象的特性。當(dāng)屬性名是小而連續(xù)的整數(shù)時,應(yīng)該使用數(shù)組,否則,使用對象。

數(shù)組來源

所有的數(shù)組都是Array構(gòu)造出來的,我們來測試一下constructor這個屬性。

var arr = [];
arr.constructor === Array; // true
arr.constructor === Array.prototype.constructor; // true

創(chuàng)建數(shù)組

//數(shù)組字面量方式
var arr1 = [1, 2, 3]; // [1,2,3]

//構(gòu)造函數(shù)方式
var arr2 = new Array();    // [] 空數(shù)組
var arr3 = new Array('9');   // ["9"] 一個字符串元素
var arr4 = new Array(9);    // [] 數(shù)組長度length為9
var arr5 = new Array([9]);   // [[9]] 相當(dāng)于二維數(shù)組
var arr6 = new Array(1, 2, 3); // [1, 2, 3]
var arr7 = new Array(1, function f(){}, {o : 6}, null,undefined,true);
// 數(shù)組可以存儲任意混合數(shù)據(jù)類型

由于arr4的方式,當(dāng)只有一個數(shù)字參數(shù)傳遞到Array的構(gòu)造函數(shù)中,構(gòu)造函數(shù)會返回設(shè)置了length屬性的空數(shù)組。所以推薦使用數(shù)組字面量方式,短小而簡潔。

檢測對象是否為數(shù)組

var arr1 = [1, 2, 3];
typeof(arr1); // object

眾所周知,typeof不能正確檢測類型。

arr1 instanceof Array; //true

instanceof 方式在一個網(wǎng)頁內(nèi)是沒有問題,一旦嵌套其他網(wǎng)頁,便存在兩個全局作用域,互相調(diào)用時的檢測就會出問題。

Array.isArray(arr1); // true

Array.isArray() 是ECMAScript5 新增的方法,沒有缺陷。唯一的問題是ie8瀏覽器不支持,ie9瀏覽器在嚴(yán)格模式下也不支持。

Object.prototype.toString.apply(arr1).slice(8, -1); // Array

最后一種方式是檢測類型的最好方法。

數(shù)組長度

數(shù)組的length也是它的屬性,增大length也不會發(fā)生越界錯誤。
length值等于數(shù)組最大的整數(shù)屬性名加1。

var arr1 = [];
arr1[9] = 1; // 長度為10,只包含一個元素的數(shù)組

設(shè)小值將將會把屬性名大于等于length的屬性刪除。
如果將length值設(shè)為0,相當(dāng)于清空數(shù)組。

var arr2 = [1, 2, 3, 4, 5];
arr2.length = 3; // [1, 2, 3]
arr2.length = 0; // []

數(shù)組遍歷

遍歷數(shù)組不要使用for in循環(huán)遍歷數(shù)組,因為for in會遍歷原型鏈上的所有屬性,但我們并不需要這么多。推薦使用for循環(huán)的方式。

var arr1 = [1, 2, 3];
arr1.test = 9;

//for in 方式
for(var prop in arr1){
  cosole.log(prop, arr1[prop]);
}
// 輸出如下
// 0 1
// 1 2
// 2 3
// test 9

//for循環(huán)方式
for(var i = 0, len = arr1.length; i < len; i++){
  console.log(arr1[i]);
}
//輸出如下
// 1
// 2
// 3

我們看到for in方式多出了一個test值,可以使用hasOwnProperty函數(shù)排除,但那會比for循環(huán)的方式慢很多。
緩存數(shù)組長度很有必要的一步,每次訪問是有性能開銷的(最新的瀏覽器在這方面做了優(yōu)化)。

小結(jié)

簡單介紹了Array的相關(guān)基礎(chǔ)知識,到這里也算是能對Array有更全面的理解了。下一篇介紹Array的方法。

Javascript雖然有很多不太容易弄懂的地方,隨著長時間的學(xué)習(xí),我已經(jīng)慢慢地愛上它了(因為現(xiàn)在沒有妹子讓我愛)。

相關(guān)文章

  • 深入理解JavaScript中的對象

    深入理解JavaScript中的對象

    這篇文章主要介紹了深入理解JavaScript中的對象,是JS入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-06-06
  • JavaScript中使用自然對數(shù)ln的方法

    JavaScript中使用自然對數(shù)ln的方法

    這篇文章主要介紹了JavaScript中使用自然對數(shù)ln的方法,是JS入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-06-06
  • js JSON.stringify()基礎(chǔ)詳解

    js JSON.stringify()基礎(chǔ)詳解

    JSON.stringify() 方法是將一個JavaScript值(對象或者數(shù)組)轉(zhuǎn)換為一個 JSON字符串,如果指定了replacer是一個函數(shù),則可以選擇性的替換值,或者如果指定了replacer是一個數(shù)組,可選擇性的僅包含數(shù)組指定的屬性
    2019-06-06
  • javascript實現(xiàn)playfair和hill密碼算法

    javascript實現(xiàn)playfair和hill密碼算法

    這篇文章主要介紹了javascript實現(xiàn)playfair和hill密碼算法,需要的朋友可以參考下
    2014-12-12
  • JS的get和set使用示例

    JS的get和set使用示例

    巧用get和set,能夠直接操作對象屬性實現(xiàn)讀寫,可以極大的提高編程效率,下面有個不錯的示例,大家可以參考下
    2014-02-02
  • JavaScript與DOM組合動態(tài)創(chuàng)建表格實例

    JavaScript與DOM組合動態(tài)創(chuàng)建表格實例

    這篇文章簡單介紹了DOM 1.0一些基本而強大的方法以及如何在JavaScript中使用它們;你可以學(xué)到如何動態(tài)地創(chuàng)建、獲取、控制和刪除HTML元素
    2012-12-12
  • Javascript實例教程(19) 使用HoTMetal(7)

    Javascript實例教程(19) 使用HoTMetal(7)

    Javascript實例教程(19) 使用HoTMetal(7)...
    2006-12-12
  • javascript 構(gòu)造函數(shù)方式定義對象

    javascript 構(gòu)造函數(shù)方式定義對象

    這篇文章主要介紹了javascript 構(gòu)造函數(shù)方式定義對象的方法及示例,需要的朋友可以參考下
    2015-01-01
  • MVC+Layui彈出表單模態(tài)框的實現(xiàn)代碼

    MVC+Layui彈出表單模態(tài)框的實現(xiàn)代碼

    這篇文章主要介紹了MVC+Layui彈出表單模態(tài)框的實現(xiàn)代碼,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • 淺談 javascript 事件處理

    淺談 javascript 事件處理

    本文向大家簡單介紹了javascript的事件處理機制,從事件源,事件操作到事件處理程序都做了簡單介紹,并給出了部分示例,這里推薦給大家。
    2015-01-01

最新評論