实用的es6总结

发布时间:2019-08-09 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了实用的es6总结脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_360_0@

常用的es6记录

变量声明constlet

let:块级元素,不允许在相同作用域内,重复声明同一个变量
const:对象所指向的地址不能改变,而变量成员是可以修改的

解构赋值

let [a, b, c] = [1, 2, 3];
let { foo, bar } = { foo: "aaa", bar: "bbb" };

Spread operator 展开运算

就是所谓的...
复制合并数组和对象

const arr1= [1, 2];
//复制数组
const arr2= [...arr1];(对象的子对象arr2改变不会影响arr1,后面子对象会影响)
//合并数组
[...arr1,...arr2]

有时候我们想获取数组或者对象除了前几项或者除了某几项的其他项

//对象也是类似下面这样
let number = [1,2,3,4,5]
let  [First, ...rest] = number//2,3,4,5

字符串扩展

模板字符串:将表达式嵌入字符串中进行拼接。用${}来界定

VAR str = 'hello';
var result = `<div>${str} world</div>`;

padStart:用于头部补全,相对的padEnd为尾部补全

'1'.padStart(2, '0');用于日期的补全工作

数值扩展

用来判断一个数值是否为整数Number.isInteger()
Math函数的扩展 Math.trunc 去除小数部分

数组扩展

Array.of()将一组值转换成数组
Math.max(...[14, 3, 77]),取得最大值

函数扩展

为函数的参数设置默认值

对象扩展

定义对象的函数可以省略冒号与 function 关键字
Object.assign():进行浅复制和同名属性的替换(对象某个属性的值是对象,如果改变会反映到目标对象)
Object.is():比较两个值是否相等
Object.values(),Object.keys()通过value或者key生成的数组

箭头函数

使用“箭头”(=>)定义函数
函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象

Promise

  • 避免了层层嵌套的回调函数,用于定时器、ajax中
  • Promise对象是一个构造函数,用来生成Promise实例,Promise 新建后立即执行,Promise实例的状态变为resolved,就会触发then方法绑定的回调函数
  • 接收的函数参数是同步执行的,但是then方法中的回调函数执行则是异步的
function result(value){
    return new PRomise(function(resolve,reject){
        if(value){
            resolve('你成功了');
        }else{
            reject('你失败了');
        }
    });
}
也可以直接定义return Promise.reject('xxx');
result(true).then(function(value){
    console.LOG(value);
}).catch(function(value){
    console.log(value);
});
console.log('先输出');

async

  • async函数返回一个Promise对象,可以使用then方法添加回调函数
  • await表示紧跟在后面的表达式需要等待结果(异步操作),拿到结果才能进入下一步,await只能出现在async函数中
  • await命令后面是一个Promise对象。如果不是,会被转成一个立即resolve的 Promise对象
  • async函数内部return语句返回的值,会成为then方法回调函数的参数
function timer(){
    return new Promise((resolve,reject)=>{
        setTimeout(resolve,1500);
    });
}
async function go(){
    await timer().then(()=>{console.log('timer')});
    console.log('go');
}
go();

importexport

//导入
import people From './example'
// 导出默认, 有且只有一个默认
export default App

//导入全部并且设置别名
import * as example from "./example"
//n多个 export 导出很多模块

//导入部分
import {name, age} from './example'
//导出
export name;
export age;

Symbol

新的原始数据类型,止属性名冲突,可以接受一个字符串作为参数,表示对 Symbol 实例的描述。

let set = Symbol('set');
let a = {};
a[set] = 'hello';

注意:1、Symbol值作为对象属性名时,不能用点运算符。2、该属性不会出现在for...infor...of循环中

结束,撒花~~~

github

欢迎大家加star~~
https://github.com/ymblog/book

脚本宝典总结

以上是脚本宝典为你收集整理的实用的es6总结全部内容,希望文章能够帮你解决实用的es6总结所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。