小夥伴,大家好,我是迎風望海。以下是我學習web前端、一些筆記心得,分享給大家,喜歡可以多多點贊收藏。帶你入門大前端。如有錯誤歡迎指出。[送心]
1:定義數組(array)是按次序排序的一組值,每個值都是有編号的、從0開始。
2:本質數組的本質是一種特殊的對象。
type of arr // object
數組的鍵名是按次序排列的一組整數
let arr = ['a','b']
console.log(Object.keys(arr)) // [0,1]
1:數組的鍵名是固定的,不用為每個元素指定鍵名,默認0,1,2
2:js規定鍵名一律為字符串,所以數組的鍵名也是字符串。
3:之所以可以被用數值讀取是 arr[1] 這樣、是因為非字符串的鍵名會被轉化成字符串。
4:與對象不同的是:對象讀取可以用點運算符。數組不行 arr.0 這樣寫不合法。
4:length屬性1:返回的是數組元素的數量、值等于鍵名 1
2:就算隻有一個元素length的值也不一定是1 而是鍵名 1
3:如果本來數組有很多元素,可以截斷 length = 2.那麼這個數組隻有兩個元素了
4:當修改數組的時候、length屬性會自動更新、length是可寫的
5:in運算符檢測某個鍵名是否存在、适用于對象同樣适用于數組
let arr = [1,2]
1 in arr // true
2 in arr // false
如果數組的某個元素是空位,返回的也是false
6: 存儲為空時如果數組對應的索引中沒有存儲數據, 默認存儲的就是undefined,
其它編程語言中默認保存的是垃圾數據或者0
7: 存儲空間不夠時js中數組存儲空間不足的時候會自動擴容。
其他語言數組的大小是固定的
8:可以存儲不同類型的數據js中數組可以存儲不同類型的數據、
其他的隻可以存儲相同類型的,(要麼全是字符串、要麼全是數值等)。
數組中的元素還是數組,就形成了多維數組。
9: 存儲空間不一定連續的js中的數組分配的存儲空間不一定是連續的,如果存儲的是相同的數據,會盡量分配連續的
如果是存儲的不同的數據類型,就不會分配連續的存儲空間。
10: 創建數組的方法有兩種
let arr = [1,2,3]; //[1,2,3]
let arr1 = new Array(); 不建議使用
不建議使用new Array 去創建數組,因為參數個數的不同,會導緻Array()的行為有差異
Array() // []
Array(3) // [, , ,]
Array(3, 11, 8) // [3, 11, 8]
可以使用Array.of() ,是為了彌補數組構造函數Array的不足,
web前端筆記6中有介紹用法,請關注後續。
11: 判斷是否是數組? Array.isArray
let arr = [1,2,3]; //[1,2,3]
console.log(typeof arr) // object
console.log(Array.isArray(arr)) // true
(1)toString 、 String 、join
var arr = [1,2,3]
console.log(arr.toString()) //1,2,3
console.log(String(arr)) // 1,2,3
console.log(arr.join('-')) // 1-2-3
(2)三者的區别
toString 、join 當數據為null、undefined的時候、會報錯
let s = null
console.log(s.toString()) // 報錯
let a = undefined
console.log(a.toString()) // 報錯
let s = null
console.log(s.join('-')) // 報錯
(3)toString(2) 括号裡可以寫一個數字,代表的是進制轉化
(4)String 轉化null、undefined不會報錯
let s = null
console.log(String(s)) // null
let a = undefined
console.log(String(a)) //undefined
總結: join當沒有參數,就是調用了toString方法,當傳參數的時候,就是分隔符
兩者都不能轉換 null/undefined會報錯。
13:類對象數組如果一個對象所有的鍵名都是正整數和零,并且有length屬性
看起來很像數組
let obj = {
0:'a',
1:'b',
2:'c',
length:3
}
obj.push('d') //報錯
上邊代碼輸出的
類對象數組不是真正的數組,所以沒有數組上的一些方法。
1:最基本的特征是length
數組的length屬性是動态的,但是類對象數組是固定的,不會根據數組成員的變化而變化
2:都有哪些類對象數組 arguments DOM元素集
1:arguments
function f() {
return arguments
}
let fun = f('a','b')
console.log(fun)
console.log(fun[0]) // a
console.log(fun instanceof Array) // false
2:DOM元素集
var elts = document.getElementsByTagName('h3');
elts.length // 3
elts instanceof Array // false
下一節分享、js數組中一些常用的方法
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!