es6 常用总结

  • 块作用域

let 和 const let 声明块级变量
const 声明块级常量,简单数据类型不可以变, 对象和函数可以变; 因为const指向地址

  • 箭头函数

(1)在函数表达式中使用, 只有一个参数时, 括号()可以忽略;
(2)没有参数和多个参数时要加上()

(3)函数只有一行的简洁函数体时, 不用声明return直接返回; 块级函数体需要手动return

this 是固定的

let fn = x => x * x

var link = ()=>{}

arrs.map(value => { })

  • 数组方法

数组遍历

参数: 元素本身, 元素下标, 数组本身

filter() 返回一个所有通过测试的元素的新数组, 返回true表示保留该元素, 返回false表示不保留该元素 var newArr = arr.filter(item=>{ return item > 3;})

map() 原数组中每个元素调用一个指定方法后, 返回值组成一个新的数组 var a = [1, 2, 3,4 5]
var b = a.map(item=>{
return item + 1;
})

forEach() 遍历数组中每个元素, 没有返回值
every() 遍历数组, 每个都通过测试, 则返回true
some() 遍历数组,有一个通过测试,则返回true

改变自身数组的方法:

push() 在末尾添加元素

pop() 删除并返回最后一个元素,

unshift() 在开头添加元素

shift() 删除并返回第一个元素

splice() 删除元素, 替换元素, 插入元素

reverse() 数组翻转

sort() 数组排序

不改变自身数组的方法

concat() 拼接数组 let newarr = arr1.concat(arr2, arr3);

join() 拼接成字符串 let arrStr = arr.join(’_’);

slice() 数组抓取 let newArr = arr.slice(0, 5); 第二个参数可以为负数

valueOf()—返回数组对象的原始值。

  • 扩展运算符 …

1 数组拼接, 解开数组[]暴露元素
var arr1 = [1,2,3]; var arr2 = [4,5,6];
arr1.push(…arr2)
[…arr1, …arr2]

2 对象拼接
var obj1= { name: ‘my’}; var obj2 = {sex: ‘male’};
var obj3 = {…a, …b, x: 1}

  • 模块 module
// es5中, 使用requireJs,一个文件一个模块, 暴露属性和方法
module.exports = {
     port: 3000,
     getAccounts: function(){
            console.log(this.port)
     }   
}
//es5中, 使用requireJs,一个文件一个模块, 暴露属性和方法
//引用时, 变量名表示整一个模块, 相当于一个对象
var config = require('module.js');
var port = config.port
//es6, 使用commonJs
export default name = 'rmy';
export let port = 3000;
export function getAccount(){
    ...
}
//默认属性不用放在{}里

import name, {port, getAccount} from 'module.js';
  • 默认参数

var link = function(height=50, color=‘red’){ }

  • 模板字符串

var name = your name is ${first} ${last};

${变量名}

  • 解构赋值

var {house, mouse} = obj.data

  • Promise
new Promise((resolve, reject)=>{
            ....
resolve()
}).then(()=>{
}).catch(()=>{
}) 

resolve表示进行下一步then, reject表示下一步catch

then也是一个promise, 参数是resolve传下来的参数

Promise.all() 将多个promise实例包装成一个新的promise实例, 成功返回一个结果数组, 失败返回最先失败状态的值

Promise.all(promiseArray).then(res => {

)

属性在构造函数中分配; 方法不用关键字function; constructor使用默认参数;

class baseModel {
	constructor(options, data){
	        this.name = 'base;
	        this.url = 'http://baidu.com';
	        this.data = data;
	        this.options = options;
	}
	getName(){
	       console.log(this.name)
	}
}
let base = new baseModel()
base.getName()
  • 继承

先在该类找属性和方法, 如果找不到, 再去继承的类里找

class AccountModel extends baseModel {}

  • 对象

Object.assign() 对象合并
第一个参数是目标对象, 从第二个参数开始, 按顺序拼接供应者的属性到第一个参数,有相同的属性则会被覆盖
var recevier = {}
Object.assign(recevier, {type: ‘js’, name: ‘file.js’}, {type: ‘css’})
for in 遍历对象自身和继承的可枚举属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值