首页 > 生活 > 娱乐

js数组自带函数(web前端笔记3js数组定义)

时间:2023-01-08 10:32:26 作者: 阅读:0
写在前面

小伙伴,大家好,我是迎风望海。以下是我学习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.isArray

let 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') //报错

js数组自带函数(web前端笔记3js数组定义)(1)

上边代码输出的

类对象数组不是真正的数组,所以没有数组上的一些方法。

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数组中一些常用的方法

,

图文新闻

相关文章

热门资讯

评论

1111111

更多推荐

苹果手机可以自己换电池吗怎么换(苹果手机换电池)
苹果手机可以自己换电池吗怎么换(苹果手机换电池)

有许多苹果手机的使用者想为自己的手机更换电池,那么如何自己动手换呢?下面就来教教你。 工具 一块新电池,一个专用螺丝刀

2023-01-08
实时的压缩方式(压缩神器20兆直接压缩到1MB)
实时的压缩方式(压缩神器20兆直接压缩到1MB)

现在用pr剪视频。一输出动辄就要几十兆或者几百兆,长一点的甚至需要几个G,但微信传视频只能传25MB,这时候就需要进行视频压缩了,所以

2023-01-08
minecraft1.16更新内容(版本更新带来地形巨变以及)
minecraft1.16更新内容(版本更新带来地形巨变以及)

是的,《Minecraft》的最新版本「地洞山崖」(Caves & Cliffs)下半更新 1.18 已在今(1)日改版正式登场,随着游戏世界的高度扩展,地穴

2023-01-08
win7各个版本什么区别(Win7各个版本之间的区别)
win7各个版本什么区别(Win7各个版本之间的区别)

迄今为止,各人感觉微软发布的操作系统里面最好用也最容易上手的就是Windows 7 操作系统,那么win7推出这么多年,win7有哪几个版

2023-01-08
传祺影酷1.5t超星版测评(3套动力颜值炸裂)
传祺影酷1.5t超星版测评(3套动力颜值炸裂)

国内紧凑型SUV市场竞争激烈,不管是合资还是自主厂商在这个级别推出的产品都是明星级别,特别是自主品牌,要付出更大的努力才能

2023-01-08
js数组自带函数(web前端笔记3js数组定义)
js数组自带函数(web前端笔记3js数组定义)

写在前面 小伙伴,大家好,我是迎风望海。以下是我学习web前端、一些笔记心得,分享给大家,喜欢可以多多点赞收藏。带你入门大前端。

2023-01-08
canvas js(字符串拼接混淆和浏览器canvas指纹)
canvas js(字符串拼接混淆和浏览器canvas指纹)

字符串拼接反爬原理 为了加大JS的阅读难度和调试难度,字符串拼接构成可执行的JS方法(document,avigator,window)是比较常见的

2023-01-08
javascript中字符串型数据表现(JavaScript学习笔记十)
javascript中字符串型数据表现(JavaScript学习笔记十)

ES5/String严格模式(了解)我们都知道 js 是一个相对不很严谨的语言而且开发的时候,一些代码也不是很严格要求而严格模式就是对开发的

2023-01-08
南阳中关村软件园有哪些企业(知康科技入驻北京中关村发展大厦)
南阳中关村软件园有哪些企业(知康科技入驻北京中关村发展大厦)

2016年11月,知康科技(北京)有限公司入驻北京市海淀区中关村发展大厦。 宽敞明亮、简洁通透的办公环境,为辛勤工作增添了无

2023-01-08
荣耀最新发布手机(回顾新荣耀独立后发布的轻旗舰数字系列手机)
荣耀最新发布手机(回顾新荣耀独立后发布的轻旗舰数字系列手机)

2022年的5月第三周(5.16-5.22),荣耀拿下中国智能手机市场19%的市场份额,创历史新高,从最低谷的3%,到现阶段最高的19%,荣耀用了近一年半的

2023-01-08
返回顶部