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 —— 返回函数的名称(将匿名函数赋值给变量时)
- 箭头函数
- this就是定义时确定
- 不可用当做构造函数
- 不可使用arguments
- 不可使用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
- ES6个人学习整理(四)——扩展
- ES6个人学习整理(三)——解构赋值
- ES6个人学习整理(六)——Promise
- ES6个人学习整理(七)——Generator
- ES6个人学习整理(八)——Class
- ES6个人学习整理(九)——Module
- ES6个人学习整理(一)——编译环境搭建
- ES6个人学习整理(二)——let和const
- ES6个人学习整理(五)——Set和Map
- es6数值扩展(四)
- ES6学习笔记(四)数值与数组的扩展
- ES6 —(字符串扩展)
- ES6 —(数组扩展)
- ES6 — 对象扩展
- ES6 —(对象的扩展)
- ES6——正则扩展
- ES6——字符串扩展
- ES6——Number扩展
- DNS记录类型
- [ios版本]AR 现实增强之高通Vuforia
- DICOM:C-GET服务
- Android代码中使用的设计模式思想
- 使用RecyclerView.adapter.notifyDataSetchang()不能更新数据
- ES6个人学习整理(四)——扩展
- 数据结构和算法经典100题-第24题
- ios图片加载
- 基于hadoop1.0集群环境搭建
- hadoop的Linux环境准备
- Bootstrap 笔记
- hive的环境搭建
- Git 使用(一)
- radix sort