JavaScript进阶之构造函数&数据常用函数

一、深入对象

1.1 创建对象的三种方式

  1. 利用对象字面量创建对象
  2. 利用new object创建对象
    const obj = new Object({})
  3. 利用构造函数创建对象

1.2 构造函数

  • 通过构造函数快速创建多个类似的对象
    约定:① 命名以大写字母开头 ② 使用构造函数必须加new
    语法eg:
    function Pig(name,age) {
        this.name = name;
        this.age = age
    }
    const pepa = new Pig('佩奇', 6)
    
    【说明】:
    1. 使用new关键字调用函数的行为称为实例化
    2. 实例化构造函数时没有参数可以省略()
    3. 构造函数内部无需写return,返回值即为新创建的对象
    4. new Object() 和 new Date()也是实例化构造函数
  • 实例化执行过程
    ① 创建新的空对象 ② 构造函数this指向新对象 ③ 执行构造函数代码,修改this,添加新属性 ④ 返回新对象

1.3 实例成员&静态成员

  1. 实例对象:通过构造函数创建的对象
    实例成员:实例对象中的属性和方法(实例属性和实例方法)
    【说明】:① 为构造函数传入参数,创建结构相同但值不同的对象 ② 构造函数创建的实例对象彼此独立互不影响
  2. 静态成员:构造函数的属性和方法称为静态成员(静态属性和静态方法)
    【说明】:① 静态成员只能构造函数访问 ② 静态方法中的this指向构造函数
    eg:Date.now()``````Math.PI``````Math.random()

二、内置构造函数

字符串、数值、布尔等基本类型也有专门的构造函数,称为包装类,js中几乎所有数据都可以基于构造函数创建
引用类型:Object、Array、RegExp、Date等
包装类型:String、Number、Boolean等

2.1 Object

  1. 获得所有的属性名,返回数组
    Object.keys(变量名)
  2. 获得所有的属性值,返回数组
    Object.values(变量名)
  3. 对象的拷贝
    Object.assign(变量名,需要拷贝的对象)

2.2 Array

  • 数组常见实例方法-核心方法

    1. forEach方法
      遍历数组无返回值,适合遍历数组对象
      语法:

      数组名.forEach(function (数组元素,元素索引) {
          
      })
      
    2. map方法
      迭代数组,并且返回新的数组
      map也叫映射,有返回值,forEach没有
      语法:

      数组名.map(function (数组元素,元素索引) {
          
      })
      
    3. filter方法
      过滤数组,并返回筛选之后元素的新数组不改变原数组,只能写比较运算符
      语法: currentValue必须写,index可选

      数组名.filter(function (currentValue, index) {
          return 筛选条件
      })
      

      eg:在这里插入图片描述

    4. reduce方法
      累计器,返回累计处理的结果,经常用于求和
      语法:

      数组名.reduce(function(){}, 起始值)
      数组名.reduce(function(上一次值,当前值){}, 起始值)
      

      参数:有起始值,就把起始值加到里面
      reduce执行过程:在这里插入图片描述

      eg:在这里插入图片描述

  • 数组常见实例方法-其他方法
    在这里插入图片描述

    在这里插入图片描述

    1. find方法
      查找元素,返回符合条件的第一个数组元素值,如果没有就返回undefined
      语法:arr.find(回调函数[, thisArg])
      参数说明:
      回调函数:有三个参数:① element:当前遍历到的元素(必写) ② index:当前遍历到的索引(可选) ③ 数组本身(可选)
      thisArg:执行回调时用作this的对象
      eg:
    arr.find(function (item) {
        return item.name === '小米'
    })
    
    1. every方法
      筛选数组返回布尔值,测试一个数组内所有元素是否都能通过某个指定函数的测试
      若都符合条件,返回true,否则返回false,若收到一个空数组,此方法在一切情况下都会返回true
  • 数组常见静态方法-from方法
    把伪数组转换为真数组返回转换后的真数组
    语法:arr.from(需要转换的伪数组)

2.3 String常见实例方法

在这里插入图片描述

  1. split()方法
    字符串转换为数组返回转换后的数组,和join()相反
    语法:str.split('分隔符')
    eg:
    const str = "red,pink"
    const arr = str.split(',')
    
  2. substring()方法
    截取字符串返回截取到的字符串
    语法:arr.substring(indexstart[, indexend])
    参数:indexstart表示需要截取的部分的第一个元素的索引号,indexend表示要截取到的最后一个元素的后一个元素的索引号,(即左闭右开)如果省略了indexend,默认截取到最后
  3. startsWith()方法
    检测字符串判断字符串是否以给定的字符串开头
    语法:arr.startsWith(searchString[, position])
    参数:searchString表示要检测的字符串,position表示开始搜索的位置,默认为0
  4. includes()方法
    搜索字符串判断一个字符串是否包含在另一个字符串中返回一个布尔值
    语法:arr.includes(searchString[, position])

2.4 Number

  1. toFixed()方法
    对数字指定保留小数位数,整数也可以
    语法:num.toFixed(指定保留的小数位数)
  2. toString()方法
    数字型转换为字符串
  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值