ES6

1. 变量定义

let a = 1; //局部变量,块内有效

const a = 1; //常量

var a = 1; //同es5

2. 变量解构

let [a, b, c="ok"] = [1, 2, 3];  //列表方式解构

let {a, b, c} = {a:1, b:2, c:3};  //对象方式解构

3.扩展对象及rest对象

function print(...args) {

console.log(args[0]);

console.log(args[1]);

console.log(args[2]);

}


function print(first, ...args) {

console.log(first);

console.log(args[0]);

console.log(args.length);

}

4. 字符串模板

let blog = `<h1>我的名字是${name}<h1>我是一个初学者。</br>`

5. 数值

Number.isInteger(1)

Number.isFinite(2.3)

Number.SAFE_MIN_NUMBER;

Number.SAFE_MAX_NUMBER;

let value = 0B111;  //二进制

let value = 0O111; //八进制

let value = 0x123; //十六进制

6. 数组

let json  = {

"0": "A1",

"1": "A2",

"2": "A3",

       length: 3

}

let arr = Array.from(json);


let arr1 = Array.of(1,2,3,4,5);

arra1.find(function(value, index, arr) {

return value > 2;

})


arr1.fill("web", 1,3);  //替换1,2坐标元素

for(let [value, index] of arr1.entries()) {

console.log(value);

       console.log(index);

}


for (let value of arr1) {

console.log(value);

}


for (let key of arr1.keys()) {

console.log(key);

}

7. 箭头函数

() => true;

(a, b) => a+b;

(a, b) => {return a+b;}

8. 对象、数组参数解构

function fun({a, b="ok"}) {

console.log(a, b);

}

let params = {

a: "a",

        b: "b"

};

fun(params);


function fun1(a, b) {

console.log(a, b);

}

let params = [1,2];

fun1(...params);


0 in arrs;  //判读数组0下标元素是否存在

"a" in objs;  //判断a是否在对象中b


let arrs = [1,2,3]

arrs.forEach((val, index) => {

console.log(val, index);

})  //遍历数组


arrs.toString();  //转换成字符串

arrs.join(",");  

9. 对象操作

let name="hhan";

let age=34;

let persion={name, age};


let key1="name";

let key2 = "age";

let persion = {[key1]: "hhan", [key2]: 34};

let detail = {"address": "beijing"};

let persion_detail = Object.assign(persion, detail);


Object.is(NaN, NaN);  严格相等


let email = Symbol();

let persion = {"name": "hhan", "age": 34, [email]: "hhan@lushu.co"};

persion[email];  //不能通过persion.email访问


for (let key in persion) {

console.log(persion[key]);  //symbol不会被列出

}

10. Set和WeakSet

let set = new Set([1,2,3,4])

set.add(5);  //添加元素

set.delete(1);  //删除元素

set.clear();   //清空集合

set.has(1);  //查找数据

set.size;  //集合元素个数

for(ele of set) {

console.log(ele);

}

set.forEach((val)=> console.log(val));


wset = net WeakSet();

let obj = {a: "ok"};

wset.add(obj);

11. map结构

let map = new Map();

map.set("skill", "web");

let json = {"name": "ok"};

map.set(json, "worker");

console.log(map.get(json));

map.delete(json);  //删除元素

map.clear();  //清空map

map.size;  //元素个数

map.has(json);  //查找元素

12. Proxy代理

let obj = {

add: function (a, b) {

return a+b;

} ,

name: "jspang"

}

let proxy = Proxy(obj, {

get: function(target, key, property) {

console.log(target[key]);

return target[key];

},

set: function(target, key, value, receiver) {

//receiver代表原始值

console.log(target, key, value, receiver);

return target[key] = value;

}

})


let proxy = new Proxy(function () {

return "I am jspang.";

},  {

apply(target, ctx, args) {

console.log("do apply");

return Reflect.apply(...arguments);

}

})

13. Promise

function step1 (resolve, reject) {

if (condition1) {

resolve("completed-1");

} else {

reject("reject-1");

}

}


function step2 (resolve, reject) {

if (condition2) {

resolve("completed-2");

} else {

reject("reject-2");

}

}


function step3 (resolve, reject) {

if (condition3) {

resolve("completed-3");

} else {

reject("reject-3");

}

}

new Promise(step1)

.then(function () {

return new Promise(step2);

})

.then(function () {

return new Promise(step3);

}).then(function () {

console.log("completed.");

})

14. class类

class Coder {

name(val) {

return val;

}

}

let jspang = new Coder;

console.log(jspang.name("hello"));


class Coder {

name(val) {

return val;

}

constructor(skill, age) {

this.skill = skill;

this.age = age;

}

}

let jspang = new Coder("web", 33);


class htmler extends Coder {

}

15. export和import

module.js

export var name="jspang";

export var skill ="web";

import {name, skill} from "./module.js"


module.js

var name = "jspang";

var skill = "web";

export {name, skill}

export function add(a, b) {

return a+b;

}

export {

mname as name;

mskill as skill;

}


module.js

export default var name="jspang";

import myname from "./module.js"


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值