es6新语法

环境搭建方面:

部分浏览器不支持,如:
部分浏览器不支持

1.解构赋值

数组:
let [a,[[b]] c] = [1,[[2]],[3]] 可嵌套
a=1,b=2,c=3

字符串:
let [a,b,c,d] = ‘hel’ 不完全结构
a=‘h’,b=‘e’,c=‘l’,d=underfine

对象:
let obj = {a:2,b:3}
let {a:x,b:y}=obj;
x=2;b=3

剩余运算符
let {a,…rest} = {a:10,b=2,c=3}
a=10,rest={b:2,c:3}

结构默认值:
let {a=3,b=4} = {a:5}
a=5,b=4;

2.symbol 类型
	let sy = Symbol('cc');
    console.log(sy);//Symbol(cc)
    console.log(typeof(sy)); //symbol
    let sy2 = Symbol('dd');
    console.log(sy===sy2); //false

使用场景:定义属性和常量

        let sy = Symbol('cc');
        let obj = {
            [sy]:"5"
        }
        //调用
        console.log(obj[sy]); //5

注意:该属性是公有属性不是私有属性,可以在类的外部访问。但是不会出现在 for…in 、 for…of 的循环中,也不会被 Object.keys() 、 Object.getOwnPropertyNames() 返回。如果要读取到一个对象的 Symbol 属性,可以通过 Object.getOwnPropertySymbols() 和 Reflect.ownKeys() 取到。

3.Map与set
Map:
    // 简单的使用
    let myMap = new Map();
    var keyObj = {};
    myMap.set(0, 'qwe');
    myMap.set(1, 'asd')
    let n = myMap.get(0)
    console.log(n);
    // map的迭代
    for (var [a, b] of myMap) {
        // console.log(a, b);
    }
    for (var [a, b] of myMap.entries()) {
        console.log(a, b);
    }
    for (var key of myMap.keys()) {
        console.log(key);
    }
    for (var value of myMap.values()) {
        console.log(value);
    }
    // map与array的转换
    let array1 = [['key1', 'value1'], ['key2', 'value2']];
    let newArray = new Map(array1); //数组转对象
    let newArray2 = Array.from(newArray);//对象转数组
    // console.log(newArray2);
    

    Set:
        // set
    let mySet = new Set();
    mySet.add(2)
    mySet.add(1)
    mySet.add("some text");
    var o = { a: 1, b: 2 };
    mySet.add(o);
    console.log(mySet);
    // Array转set与string转set
    let array3 = ['a', 'b'];
    let newArray3 = new Set(array3);
    let String1 = 'hello';
    newString1 = new Set(String1);
    console.log(newString1);
    
4.Reflect与Proxy
5.字符串

includes():返回布尔值,判断是否找到参数字符串。
startsWith():返回布尔值,判断参数字符串是否在原字符串的头部。
endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部。

        // 接收两个参数 1.字符串 2.索引
        let string = "apple,banana,orange";
        console.log(string.includes('apple'));//true
        console.log(string.startsWith('apple'));//true
        console.log(string.endsWith('apple')); //false
        console.log(string.startsWith("banana", 6))  // true);
6.数值
7.对象

属性和属性名一样时可以简写,
方法可以简写,
方法名可以写成表达式

        let obj = {
            ["he" + "llo"]() {
                console.log('2');
                
            }
        }
        obj.hello();  //"Hi"

对象的拓展运算符:

        let person = { name: "Amy", age: 15 };
        let teacher = { ...person, age: 18 };
        console.log(teacher); //age: 18,name: "Amy"
        //注意 属性相同时,后边的会覆盖前面的

新方法object.assign,用于合并对象,第一个参数是目标对象,后面的参数是源对象。
Object.is(value1, value2)
用来比较两个值是否严格相等,与(===)基本类似。

8.数组
(1)Array.of

Array.of() 将参数中所有值作为元素形成数组。
所有值作为元素形成数组。例如:

        console.log(Array.of(1,2,4,5));//[1,2,4,5]
        // 注意:参数为空时返回新数组
(2)Array.form

Array.form 将类数组转换为数组
场景:例如

        function arg() {
            return Array.from(arguments).reduce((sum, num) => sum + num)
        }
        // arg(1, 2, 3);
        console.log(arg(1, 2, 3));
(3)find findIndex

find:查找数组中符合条件的元素,若有多个符合条件的元素,则返回第一个元素。
findIndex()
查找数组中符合条件的元素索引,若有多个符合条件的元素,则返回第一个元素索引。

(4) entries

遍历键值对,例如:

        for (let [key, value] of ['a', 'b'].entries()) {
            console.log(key, value);

        }
        //不使用for of 
        let arr = ['a', 'b'];
        console.log(arr.entries().next().value);

(5)keys() values()
        console.log(['a'].keys().next().value); // 0
        console.log(['a'].values().next().value); // a

拓展运算符

9.iterator 迭代器

例如:

        const items = ["zero", "one", "two"];
        // const it = items[Symbol.iterator]();
        const it = items[Symbol.iterator]()
        console.log(it.next().value);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值