ES6基本语法使用总结

2018-10-28  本文已影响7人  Serenity那年
const obj = {name: "wanglu"};
obj.name = "can update";
//不能够修改对象的引用,可以修改对象的值;如果上面是let修饰的,可以修改引用;
// obj = {name: "can not update"};
const obj = Object.freeze({name:"jack"});
obj.name = "tom";
console.log(obj.name);//jack
const [a,b] = ["wanglu",70];
console.log(a);//wanglu
console.log(a[0],a[1]);//w a
console.log(b);//70
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
let result = n =>++n;
//注意:如果加上{} 想要有返回值,必须使用return,这一点和kotlin
//不一致,kotlin默认最后一行为返回值;
let result = n =>{return ++n};
console.log(result(5));
//箭头函数返回一个对象的实现方式
//返回的对象,必须用()括起来
let obj = n =>({id:n,name:"wnaglu"});
console.log(obj(666));
/==(等于)与===(恒等于)的区别
//==(等于)
//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
//根据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');
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 }

JSON.stringify(obj)

上一篇 下一篇

猜你喜欢

热点阅读