我們知道對象創建方式有字面量的創建方式, 如:
var a = {
b: 1,
c: 2
}
複制代碼
那我們創建數組肯定也是可以使用字面量的方式來創建
var arr = [1,'a',null, undefined, ' ']
// 這句話的意思是創建一個數組,内容是 1,'a',null, undefined, ' ', 長度是 5
複制代碼
對象我們還可以使用new的方式來創建一個對象: 如:
var obj= new Object({b:1,c:2})
複制代碼
那麼數組我們也是可以使用new 的方式來創建的。
var arr =new Array(1,2,3,'2',null,undefined)
// 這個意思是創建一個數組,内容包含 1,2,3,'2',null,undefined, 長度為6
複制代碼
在new的方式中,如果第一個參數是數字的話,那麼創建的是一個長度為數字,内容為空的數組
數組是用來存儲數據的,數組的類型是對象,也是一個引用值的類型。
那麼怎麼判斷一個數據是不是數組呢?
instanceof
var arr = [2];
arr instanceof Array // true
複制代碼
var arr = [2];
Object.prototype.toString.call(arr) // "[object, Array]"
複制代碼
var arr = [2];
Array.isArray(arr) // true
複制代碼
var arr = [2];
arr.constructor === Array // true
複制代碼
我們通過前面的文章了解到數組和對象一樣,都是引用類型,那麼讀取對象的方式對象表達式的方式:
var obj = {
0: 1,
1: 2,
2: '32323'
}
obj['0'] 和 obj[0] 得到的結果是一樣的,js 在讀取的過程中,會把數字轉成字符串
複制代碼
我們數組長的和對象差不多,那我們是不是也可以通過 數組[下标的方式] 來讀取
通過上圖我們知道,是可以通過下标來讀取的,并且數組會默認有一個length 屬性,這個length 是根據最大的下标來自動生成的.
裡面有一些地方是empty (空的),那我們就稱這個數組是不連續的,也就是稀松數組
數組的遍曆我們在上一節說到了數據的遍曆方式,那麼遍曆數組的方式有哪些呢?
for 循環
var arr = [1,2,3,'2',null,undefined, , , 123];
for(var i = 0; i<arr.length; i ){
arr[i] 可以遍曆數組的每一項,包括空的
}
複制代碼
var arr = [1,2,3,'2',null,undefined, , , 123];
for(var prop in arr){
arr[i] 可以遍曆數組的每一項,如果是空的,是不會打印的
}
複制代碼
數組的基本操作有興趣的自己自己嘗試 forEach,和 for of等es6種語法
數組是用來存儲數據,那麼我們如何新增呢?
pushpush 是在數組的末尾添加新的數據,數據可以是多個,會依次添加到數組的末尾
var arr = [12,3,23,0]
arr.push(1,2,4)
複制代碼
unshift我們知道,arr[arr.length -1] 是獲取數組的最後一位,那麼我們直接 arr[arr.length] = 123 也是可以在數組末尾添加數據
unshift 是在數組的首位添加數據
var arr = [12,3,23,0]
arr.unshift(1,2,4)
複制代碼
這個方法可以加,可以減
var arr = [12,3,23,0]
// 在下标為1的後面,添加4,4,5,6
arr.splice(1,0,4,4,5,6);
複制代碼
删除數組的最後一位
var arr = [12,3,23,0];
arr.pop();
複制代碼
var arr = [12,3,23,0];
arr.shift();
複制代碼
其他的詳情請查看,
,es6的新增請查看
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!