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

来源:互联网 发布:广告投放数据分析 编辑:程序博客网 时间:2024/06/05 09:21

扩展

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 1line 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是为了代码块外能够使用indexfor (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
原创粉丝点击