es6语法

https://www.jianshu.com/p/dc5057e7ad0d

注意: 在玩es6的时候,用严格模式(use strict)  

1. 变量l定义let和常量定义const

let定义变量  有块级作用域(只对本块起作用,不会影响其他)

应用: 可解决i值问题

let aBtn = document.getElementsByTagName('input');
        console.log(aBtn.length, 989898)
        for (let i = 0; i < aBtn.length; i++) {
            aBtn[i].onclick = function () {
                alert(i)
            }
        }

注意: let不能重复定义同一变量

2. 字符串模板引擎(字符串拼接)

Es6的这种新的"字符串"拼接方法比较简单,没有繁琐的加好和引号, 只需要在需要的字符串"边界"加上``即可

var name = 'jack';
        var age = 18;
        var sex = '男';
        var str1 = `我是${name}, 今年${age}岁, 性别${sex}`;
        console.log(str1)

3. 解构赋值

根据对应赋值

let [a,b,c] = [12, 5, 8]
        console.log(a,b,c)

json 格式赋值


let {a,b,c} = {a:1,b:2,c:3};
console.log(a,b,c) //1 2 3
// 数组里嵌套数组
let [a,[b,c],d] = [1,[2,3],4]
console.log(a,b,c,d) // 1, 2, 3 4

解构赋值与顺序无关   与结构有关

let {a,b,c} = {b: 5, c: 4, a: 3};
        console.log(a,b,c) // 3,4,5

解构赋值的默认值

let {time = 1000, id = 0} = {};
        console.log(time, id)  // 1000 0

4. 神奇的三个点

深拷贝的几种方式

方式一: 利用for循环把原数组的每一项都遍历,然后扔到新数组中

var arr = [1,2,3];
        var arr2 = [];
        for (var i = 0; i < arr.length; i++) {
            arr2.push(arr[i])
        }

方式二: 利用Array.from(原数组)

var arr = [1,2,3];
        var arr2 = Array.from(arr);

方式三: 三个点

var arr = [1,2,3];
        var arr2 = [...arr];

5. for 循环

for in 循环

let arr = [1,2,3];
        for (let i in arr) {
            console.log(i)    // 0 1 2
            console.log(arr[i]) // 1 2 3
        }
        // 循环json
        let json = {a: 12, b: 13, c: 14};
        for (let name in json) {
            console.log(name) // a b c
            console.log(json[name]) // 12 13 14
        }

for of 循环 (不可循环json)

let arr = [1,2,3];
        for (let name of arr) {
            console.log(name) // 1 2 3
        }

 

posted @ 2020-06-30 09:10  Lsnower  阅读(184)  评论(0)    收藏  举报