美文网首页
ES6基本语法使用总结

ES6基本语法使用总结

作者: Serenity那年 | 来源:发表于2018-10-28 21:29 被阅读7次
    • 1.const定义的代表常量,只能赋值一次;
    • 2.js中用const定义的对象的属性可以修改,但是对象的引用不能修改;
    const obj = {name: "wanglu"};
    obj.name = "can update";
    //不能够修改对象的引用,可以修改对象的值;如果上面是let修饰的,可以修改引用;
    // obj = {name: "can not update"};
    
    • 3.为了防止修改对象的属性,可以冻结对象;
    const obj = Object.freeze({name:"jack"});
    obj.name = "tom";
    console.log(obj.name);//jack
    
    • 4.数组的解构赋值--必须按顺序解出相应的值;
    const [a,b] = ["wanglu",70];
    console.log(a);//wanglu
    console.log(a[0],a[1]);//w a
    console.log(b);//70
    
    • 5.对象的解构赋值;可以是乱序,但是名称必须对应;
    const {age,name} = {name:"wanglu",age:18,height:175};
    console.log(name);//wanglu
    console.log(age);//18
    console.log(name[0]);//w
    console.log(name[1]);//a
    
    • 6.箭头函数返回值注意:如果使用大括号并且有返回值,必须带上return--不管是不是最后一行;如果没有大括号,且就一个表达式,不能使用return;
    let result = n =>++n;
    //注意:如果加上{} 想要有返回值,必须使用return,这一点和kotlin
    //不一致,kotlin默认最后一行为返回值;
    let result = n =>{return ++n};
    console.log(result(5));
    
    • 7.箭头函数返回一个对象的方式;必须用一个()括起来;
    //箭头函数返回一个对象的实现方式
    //返回的对象,必须用()括起来
    let obj = n =>({id:n,name:"wnaglu"});
    console.log(obj(666));
    
    • 8.关于==与===(恒等于)的区别;
    /==(等于)与===(恒等于)的区别
    //==(等于)
    //1.如果两个值类型相同,进行===比较;
    //2.如果两个值类型不同,它们可能相等。根据下面规则进行类型转换后再比较:
    //a.如果一个是null,一个是undefine,那么它们比较相等;
    //b.如果一个是字符串,一个是数值,把字符串转换成数值再进行比较;
    //c.如果任一值是true,把它装换成1再比较;如果任一个值是false,把它转换成0再比较;
    //d.如果是一个是对象,另一个是数值或者字符串,把对象转换成基础类型,利用他的toString或者
    //            valueOf方法。js核心内置类,会尝试valueOf优先于toString;例外的是Date,Date利用
    //              的是toString转换的;
    
    //=== 恒等于
     //1.如果类型不同,就不相等;
     //2.如果两个都是数值,并且是同一个值,那么相等;(!例外)的是,如果其中至少一个是NaN,那么不相等。
     //             判断一个是是否是NaN,只能用isNaN()来判断;
     //3.如果两个都是字符串,每个位置的字符都一样,那么相等;否则不相等;
     //4.如果两个值都是true,或者都是false,就相等;
     //5.如果两个值都引用同一个对象或者函数,那么相等;
     //6.如果两个值都是null,或者都是undefine,那么相等;
     console.log(null==undefined);//true
     console.log(true==1);//true
     console.log(false==0);//true
     console.log("1"==1);//true
     console.log(true===1);//false
     console.log(NaN===NaN)//false
    
    • 9.判断构造函数的调用方式;
    //根据new.target是否返回undefine来判断构造函数是怎么调用的;
     function Person(name){
        console.log('new target---->'+new.target);
        if(new.target !== undefined){
            this.name = name 
        }else{
            throw new Error("必须使用new生成实例");
        }
     }
     
     function Person1(name){
        if(new.target === Person1){
            this.name = name ;
        }else{
            throw new Error("必须使用new生成实例");
        }
     }
    let p1 = new Person1("wanglu");
    //let p2 = Person(null,'zhangsan');
    
    • 10.迭代器
    let arrayList = ['a','b','c'];
    //for ... of... 遍历 
    for(let item of arrayList){
        console.log(item);
    }
    
    //将array转换为iterator,利用next来遍历里面的元素
    let itemArray = arrayList[Symbol.iterator]();
    console.log(itemArray.next());//Object { value: "a", done: false }
    
    
    • 11.将js对象转换为json String串

    JSON.stringify(obj)

    相关文章

      网友评论

          本文标题:ES6基本语法使用总结

          本文链接:https://www.haomeiwen.com/subject/sgzzfftx.html