ES6个人学习整理(四)——扩展

扩展

String

  • includes(string, index) —— 返回boolean,表示从index开始,剩余字符串是否找到参数
  • startWidth(string, index) —— 返回boolean,表示从index开始,剩余字符串是否以参数开头
  • endWidth(string, index) —— 返回boolean,表示从index开始,剩余字符串是否以参数结尾
  • repeat(n) —— 将字符串重复n次并返回, 不允许传入Infinity、负数, NaN视为0
  • padStart(number, string) —— 如果字符串长度小于number,在头部补全string
  • padEnd(number, string) —— 如果字符串长度小于number,在尾部补全string
  • 模板字符串

    // 多行字符串
    `
    line 1
    line 2
    `
    // 反引号需要转义
    `\`反引号\``
    
    // 嵌入变量
    let [name, years] = ['zhangsan', 18];
    `${name} is ${age} years old!`;
    
    // 可以使用任意js表达式
    `2 + 3 = ${2 + 3}`
    
    // 可以调用函数
    function getName() {
        return 'zhangsan';
    }
    `${getName()} is a man`
    
        // 可以紧跟在函数后面对模板进行预处理
    let [name, age] = ['zhangsan', 18];
    console.log(tag`${name} is ${age} years old!`);
    // $zhangsan is $18 years old!
    function tag(stringArr, ...values) {
    console.log(stringArr, values);
    let result = '';
        // 这里使用var是为了代码块外能够使用index
    for (var index in values)
      result += `${stringArr[index]}$${values[index]}`;
        result += stringArr[++index];
    return result;
    }

Number

  • Number.isFinite() —— 检测一个数是否为无穷
  • Number.isNan() —— 检测一个数是否为NaN
  • Number.isInteger() —— 检测一个数是否为整数,字符串不会转为int类型
  • Math.trunc() —— 返回整数部分
  • Math.sign() —— 判断正数,负数,零 返回1, -1, 0

Array

  • Array.from() —— 将类数组转化为数组以便遍历(常见的有NodeList, arguments, set 和 map)
  • Array.of() —— 将一组值转化为数组弥补Array()构造函数的不足
  • copyWithin(target, srart = 0, end = this.length) —— 将指定位置的成员复制到其他位置, target表示开始替换的位置
  • find(value, index, arr) —— 找出数组中符合条件的元素
  • findIndex(value, index, arr) —— 找出数组中符合条件元素的下标
  • fill(value, start=0, end=this.length) —— 用指定值填充一个数组或指定元素
  • entries(), keys(), value() —— 遍历数组的键值对、键、值,和map相似
  • includes() 表示是否包含指定的值(ES7,当前库测试没通过)
  • 数组推导 —— 允许通过表达式和现有数组生成一个新数组(ES7,当前库测试没通过)

function

  • 参数默认值,可接受rest参数,调用的时候可使用…扩展运算符

    // 利用参数默认值可以指定某个参数不可缺省
    let a = [1, 2, 3]
    function error(name) {
        throw new Error(`${name} is required`);
    }
    function test(index1, index2, index3, length = error('length')) {}
    test(...a)
    
    // 扩展运算符还可以将类数组转化为数组,和Array.from()功能一样
  • length —— 返回必须参数的个数
  • name —— 返回函数的名称(将匿名函数赋值给变量时)
  • 箭头函数
    1. this就是定义时确定
    2. 不可用当做构造函数
    3. 不可使用arguments
    4. 不可使用yield(generator)

Object

  • 属性的简写

    let name = 'zhangsan';
    
    let Person = {
      name,
      age: 18,
      hello() { console.log('I\'m', this.name); }
    };
    // 等同于
    let Person = {
        name: name,
        age: 18,
        hello: function () {
            console.log('I\'m', this.name);
        }
    }
  • 属性名表达式
    javascript
    let name = 'birthday';
    let obj = {[name]: 'today'};
  • Object.is() —— 严格判断两个对象是否相等
  • Object.assign(target, …source) —— 将source自身可枚举的属性拷贝到target中,如果已存在则覆盖

    用这个方法会比函数指定默认参数更好一点
    
  • Object.setPrototypeOf(obj, proto) —— 设置当前的prototype对象

  • Object.getPrototypeOf(obj, proto) —— 读取当前的prototype对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值