Blogger Information
Blog 16
fans 0
comment 0
visits 6854
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
不同的数组和分支的类型与访问方式
Stonegarlic
Original
536 people have browsed it

1102作业

1.数组

  • 声明: 字面量, […]
  • 索引: [0,1,2,3,..], 从0开始递增的”有序”正整数
  • 值: 可以是任何类型
  • 索引+值: 数组成员 或 数组元素

    1.1数组

    1. const arr = ['苹果', 5, true]
    2. console.log('array: ', arr[0], arr[1], arr[2])
    3. // 判断: 不用typeof, 用 Array.isArray(a)
    4. console.log(typeof arr,Array.isArray(a))

    1.2对象

  • 声明: 字面量 { … }
  • 属性: 语义化字符串, 功能与数组索引类似,但”无序”
  • 值: 可以是任何类型
  • 属性+值: 对象成员 或 对象元素
  • 与数组对比, 对象更像是一个”关联数组”
    1. const item = {
    2. name: '手机',
    3. price: 5000,
    4. 'in stock': true,
    5. }
    6. console.log('object: ', item['name'], item['price'], item['in stock'])
    7. // 点语法: 属性名是合法的标识符
    8. // 如果属性名是一个非法的标识符, 必须用引号包装,访问时必须使用数组的语法,不能用点
    9. console.log('object: ', item.name, item.price, item['in stock'])
    10. console.log(typeof item)

    1.3多维数组

  • forEach: 用于迭代遍历数组或对象
  • foreach(callback): 参数是一个函数,当函数当参数时,叫”回调”
  • arr.forEach(function(item,key,arr){}), 只有第一个参数item是必选
    1. const arr1 = [
    2. [1, '西瓜', 10],
    3. [2, '苹果', 20],
    4. [3, '黄桃', 30],
    5. ]
    6. // arr1.forEach(function (item, key, arr1) {
    7. // console.log(item, key, arr1)
    8. // })
    9. // arr1.forEach(function (item) {
    10. // console.log(item)
    11. // })
    12. // 箭头函数
    13. arr1.forEach(item => console.log(item))

    2. 对象数组

    1. // 成员是一个对象字面量, 前后端分离开发中, 服务器返回JSON
    2. const fruits = [
    3. { id: 1, name: '西瓜', price: 10 },
    4. { id: 2, name: '苹果', price: 20 },
    5. { id: 3, name: '黄桃', price: 30 },
    6. ]
    7. fruits.forEach(item => console.log(item))

    3. 类数组

  1. // 不是 class, 类: 类似,像, 类数组->类似一个数组,但不是数组
  2. // 仍然是一个对象, 用对象来模拟一个数组
  3. // dom编程, 浏览器中的对象
  4. const likeArr = {
  5. 0: 'admin',
  6. 1: 'admin@qq.com',
  7. 2: '498668472',
  8. length: 3,
  9. }
  10. /**
  11. * ? 类数组特征
  12. * * 1. 由0开始的递增的正整数的索引/属性
  13. * * 2. 必须要有 `length`,表示成员数量/数组长度
  14. */
  15. // likeArr.forEach(item => console.log(item))
  16. // 将类数组转为真正的数组
  17. console.log(Array.from(likeArr))
  18. // [('admin', 'admin@qq.com', '498668472')]
  19. // Array.form: 类数组->真数组
  20. Array.from(likeArr).forEach(item => console.log(item))

4. 函数数组

  • 数组成员是函数
  1. const events = [
  2. function () {
  3. return '准备发射'
  4. },
  5. function () {
  6. return '击中目标'
  7. },
  8. function () {
  9. return '敌人投降'
  10. },
  11. ]
  12. // 箭头函数简化
  13. const events = [() => '准备发射', () => '击中目标', () => '敌人投降']
  14. events.forEach(ev => console.log(ev, typeof ev))
  15. // ev 是一个函数, 要调用 ev()
  16. events.forEach(ev => console.log(ev()))

5. 对象方法

  1. / 对象的方法, 其实就是属性,只不过它的值是一个匿名函数
  2. const user = {
  3. uname: '朱老师',
  4. email: '498668472@qq.com',
  5. getUser: function () {
  6. // this: 当前对象的引用, user
  7. return `${this.uname}: ( ${this.email} )`
  8. },
  9. }
  10. console.log(user.getUser())
  11. console.log('-----------------------')
  12. // 改成数组
  13. const userArr = [
  14. '朱老师',
  15. '498668472@qq.com',
  16. function () {
  17. return `${this[0]}: ( ${this[1]} )`
  18. },
  19. ]
  20. console.log(userArr[2]())
  • 数组与对象的区别:
  • 数组与对象并无本质区别,仅仅是语法上的不同
  • 仅仅是成员声明方式和访问方式不同
  • 显然对象的语义化更好
  • 所以, 可以将数组,看成对象的一个子集或特例

  • 函数的本质
  • 函数是JS中,最重要的数据类型
  • 函数可视为一个普通的值
  • 函数可以充当返回值,参数等,凡是用到值的地方
  • 如果没有return,则返回 undefined

    效果

Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:总结的不错, 完成的很好, 继续加油
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post