常用的js数组函数(web前端笔记3js数组定义)
常用的js数组函数(web前端笔记3js数组定义)1:返回的是数组元素的数量、值等于键名 14:与对象不同的是:对象读取可以用点运算符。数组不行 arr.0 这样写不合法。 let arr = ['a' 'b'] console.log(Object.keys(arr)) // [0 1]1:数组的键名是固定的,不用为每个元素指定键名,默认0 1 22:js规定键名一律为字符串,所以数组的键名也是字符串。3:之所以可以被用数值读取是 arr[1] 这样、是因为非字符串的键名会被转化成字符串。
写在前面小伙伴,大家好,我是迎风望海。以下是我学习web前端、一些笔记心得,分享给大家,喜欢可以多多点赞收藏。带你入门大前端。如有错误欢迎指出。[送心]
1:定义数组(array)是按次序排序的一组值,每个值都是有编号的、从0开始。
2:本质数组的本质是一种特殊的对象。
type of arr // object
3: 键名
数组的键名是按次序排列的一组整数
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.isArraylet arr = [1 2 3]; //[1 2 3]
console.log(typeof arr) // object
console.log(Array.isArray(arr)) // true
12: 数组转成字符串
(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数组中一些常用的方法