JS——数组-定义

1.定义

       每一个值叫做元素

// 元素指的是1、2

let arr = [1, 2]

       元素在数组中的位置叫做索引

       第一个元素的索引为0

// '菁菁'的索引为0, '小小'的索引为1

let arr2 = ['菁菁', '小小']

        数组是无类型的

        数组元素可以是任意类型

let fun = function (a,b) { return a + b}
let arr = ['小小',1, fun,true,{name: '小小'},['苹果','梨子']]
console.log(typeof arr[0])  // string 字符串
console.log(typeof arr[1])  // number 数字
console.log(typeof arr[2])  // function 方法
console.log(typeof arr[3])  // boolean 布尔值
console.log(typeof arr[4])  // object 对象
console.log(typeof arr[5])  // object 对象

        数组是动态的

        根据需要它们会增长或缩减

        无须声明固定大小

        改变时无须重新分配空间

let arr = []
console.log(arr.length)  // 0 数组长度
arr[0] = 'LOL'
arr[1] = 'QQ'
console.log(arr.length)  // 2 数组长度
arr.shift()              // 删除数组的第一个元素
console.log(arr.length)  // 1 数组长度

       稀疏数组

        数组元素的索引可以有空隙

let arr = []
arr[1] = '精灵'
arr[10] = '妖精'
console.log(arr.length)  // 11
console.log(arr) // [1: "精灵", 10: "妖精"]

      稀疏数组的长度大于所有元素的索引

      非稀疏数组(密集数组)的长度等于数组元素的个数  

let arr = []
arr[0] = '精灵'
arr[10] = '妖精'
console.log(arr.length)  // 11 长度大于所有元素的索引

let arr1 = []
arr1[0] = '101女团'
arr1[1] = '王思聪'
arr1[2] = 'IG'
console.log(arr1.length)  // 3  长度等于数组元素的个数

        数组是对象的特殊形式

        数组索引是整数的属性名和常规对象的属性名是字符串类似

        使用数字索引访问元素比常规的对象属性要快很多

let arr = []
let obj = {}
console.log(typeof arr) // object 对象类型
console.log(typeof obj) // object 对象类型

arr[0] = '小小'
obj.name = '笨笨'
// arr[0]的访问时间比obj.name的访问时间快

QJ: 大家讨论一下
PS: 如何检测通过数组索引访问的时间
PS: 如何检测通过对象属性访问的时间

        数组继承自Array.prototype中的属性 (7.8节)

        它定义了数组的操作方法(7.9节)

         数组方法对“类数组对象”同样有效(7.11节)

         字符串的行为与字符数组类似(7.12节)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帝博格T-bag

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值