es6 笔记

1 默认参数

let link = (height=50, color='red') => { }

2 模板字符串 ${变量名}

let name = `your name is ${first} ${last}`;

3 多行字符串

var name = ` your name is $(fitst),

and then his name is ${last} `

4 解构赋值

let{house, mouse} = obj.data

5 箭头函数

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

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

this 是固定的

let fn = x => x * x

var link = ()=>{}

arrs.map(value => { })

6 Promise

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

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

new Promise((resolve, reject)=>{

            ....

resolve()

}).then(()=>{

}).catch(()=>{

})

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

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

)

7 块作用域 let 和 const

let 声明块级变量

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

8 类 class

属性在构造函数中分配; 方法不用关键字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()

8.2 继承

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

class AccountModel extends baseModel {}

9 模块 module

es5中, 使用requireJs,一个文件一个模块, 暴露属性和方法

module.exports = {

     port: 3000,

     getAccounts: function(){

            console.log(this.port)

     }   

}

引用时, 变量名表示整一个模块, 相当于一个对象

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';

10 扩展运算符 ...

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}

11 数组方法

数组遍历

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

  • filter() 返回一个所有通过测试的元素的新数组, 返回true表示保留该元素, 返回false表示不保留该元素

let newArr = arr.filter(item=>{ return item > 3;})

  • map() 原数组中每个元素调用一个指定方法后, 返回值组成一个新的数组

llet a = [1, 2, 3,4 5]

let 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()---返回数组对象的原始值。

12 对象

Object.assign() 对象合并

第一个参数是目标对象, 从第二个参数开始, 按顺序拼接供应者的属性到第一个参数,

有相同的属性则会被覆盖

var recevier = {}

Object.assign(recevier, {type: 'js', name: 'file.js'}, {type: 'css'})

for in 遍历对象自身和继承的可枚举属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值