es6新语法第二天

本文介绍了ES6中创建对象的三种方式,包括字面量、使用newObject和构造函数。详细讲解了构造函数的用途和实例化过程。此外,还探讨了实例成员和静态成员的概念。接着,文章讨论了内置构造函数如Object的静态方法,如keys、values和assign,以及Array的reduce方法在数组操作中的应用。
摘要由CSDN通过智能技术生成

es6新语法第二天

1.深入对象

1.1创建对象的三种方式

  1. 利用字面量
const o = {
	name = '小明'
}
  1. 使用new Object()
const obj = new Object()
obj.uname = '小明'
  1. 利用构造函数创建对象

1.2构造函数

是一种特殊的函数,主要用来初始化对象。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PRZjxqJk-1686914089275)(C:\Users\20664\AppData\Roaming\Typora\typora-user-images\image-20230614212351230.png)]

约定:

  1. 构造函数命名都以大写字母开头
  2. 使用构造函数必须前面+new
function Pig(uname, age) {
      this.uname = uname
      this.age = age
    }

    // console.log(new Pig('佩奇', 6))
    // console.log(new Pig('乔治', 3))
    const p = new Pig('佩奇', 6)

构造函数里面不需要return,返回值是新创建的对象

实例化过程

  1. 创建新空对象
  2. 构造函数this指向新对象
  3. 执行构造函数代码,修改this,添加新的属性
  4. 返回新对象

1.3实例成员&静态成员

实例成员:

使用构造函数生成的对象的属性和方法

静态成员:

构造函数上的属性和方法

Math.PI  Date.now() Math.random()

2.内置构造函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-veY44dFK-1686914089276)(C:\Users\20664\AppData\Roaming\Typora\typora-user-images\image-20230615112754970.png)]

2.1Object

三个静态方法,只有静态成员可以使用

const o = { uname: 'pink', age: 18 }
    // 1.获得所有的属性名
    console.log(Object.keys(o))  //返回数组['uname', 'age']
    // 2. 获得所有的属性值
    console.log(Object.values(o))  //  ['pink', 18]
    // 3. 对象的拷贝
    // const oo = {}
    // Object.assign(oo, o)
    // console.log(oo)
    Object.assign(o, { gender: '女' })
    console.log(o)

2.2Array

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s8laB9Pr-1686914089276)(C:\Users\20664\AppData\Roaming\Typora\typora-user-images\image-20230615114238256.png)]

reduce(回调函数,初始值)

  arr.reduce(function(累计值, 当前元素){}, 起始值)
     arr.reduce(function (prev, item) {
       // console.log(11)
       // console.log(prev)
       return prev + item
     }, 0)
    	arr.reduce(function (prev, item) {
       console.log(11)
       // console.log(prev)
       return prev + item
     })

    const arr = [1, 2, 3]
    const re = arr.reduce((prev, item) => prev + item)
    console.log(re)

reduce就是求和

如果是对象数组,初始值必须设置0,

 const arr = [{
      name: '张三',
      salary: 10000
    }, {
      name: '李四',
      salary: 10000
    }, {
      name: '王五',
      salary: 20000
    },
    ]
    // 涨薪的钱数  10000 * 0.3 
    // const money = arr.reduce(function (prev, item) {
    //   return prev + item.salary * 0.3
    // }, 0)
    const money = arr.reduce((prev, item) => prev + item.salary * 0.3, 0)
    console.log(money)

数组常见方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FecsRZW7-1686914089276)(C:\Users\20664\AppData\Roaming\Typora\typora-user-images\image-20230615134809960.png)]

find方法

只执行第一个满足条件的

const arr = [
      {
        name: '小米',
        price: 1999
      },
      {
        name: '华为',
        price: 3999
      },
    ]
    // 找小米 这个对象,并且返回这个对象
    // const mi = arr.find(function (item) {
    //   // console.log(item)  //
    //   // console.log(item.name)  //
    //   console.log(111)
    //   return item.name === '华为'
    // })

伪数组转换为真数组

liss (真数组)= Array.from(lis)

2.3String

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-goBLjOvi-1686914089276)(C:\Users\20664\AppData\Roaming\Typora\typora-user-images\image-20230615150847589.png)]

  1. split(分隔符)将字符串转化成数组 , 和join()相反

分隔符可以是- ,等等

join是数组加分隔符变为字符串

 const str = [10,20,30]
        // 字符串转换为数组
        // 利用中间符隔开
        str.split(',')
  1. 字符串的截取

substring(开始的索引号[,结束的索引号])

如果省略结束的索引号,默认取到最后

结束的索引号不包含想要截取的部分

  1. startsWith

检测是否以某字符开头,可以加索引号

const str = 'pink老师上课中'
console.log(str.startsWith('pink')) //true

  1. includes

判断一个字符串是否在另一个字符串里,[索引号]

2.4Number

常用方法:

toFixed() 设置保留小数的长度,默认是整数

检测是否以某字符开头,可以加索引号

const str = 'pink老师上课中'
console.log(str.startsWith('pink')) //true

  1. includes

判断一个字符串是否在另一个字符串里,[索引号]

2.4Number

常用方法:

toFixed() 设置保留小数的长度,默认是整数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值