es6 学问总结--3

es6学问总结–3

上午宣布了一个总结以为照样把本身的相识做成一个小系列吧,来日诰日把谁人总结一下!

es6对我们es3,es5的数据范例举行了晋级下边说新APIs!
js数据范例有Number、String 、oject、Boolean、Null、Undefined六种数据范例 !

下边引见 Math、Number、String 、Array、Boject的新 APIs

  • Math

  • Number

  • String

  • Array

  • Boject

Math

下边我们引见三个以为人人能用的着的属性Math.trunc()、Math.sqrt()、Math.sign()

let a=Math.trunc(4.1);                        //trunc去除整数的小数点部份
    console.log(a)//4
let b=Math.sign(-4);    //sign要领用于推断一个数为正、负、0
let c=Math.sign(4.1);
let d=Math.sign(0);
    console.log(b);//-1
    console.log(c);//1
    console.log(d);//0
let e=Math.sqrt(4)      //sqrt 用于开一个数的平方根
    console.log(e)//2
let f=Math.cbrt(27);
    console.log(f);    //3*/

Number

console.log(Number.isInteger(12));   //true  //isInteger推断数组是不是为整数 
console.log(Number.isInteger(12.3)); //flase
console.log(Number.isNaN(12145))  //false   //isNaN用于搜检数组是不是为NaN
console.log(Number.isNaN(NaN)) // true

String

var str="javascript";
console.log(str.includes("java"));//true   //includes()用来搜检字符串是不是有该衔接字符
console.log(str.includes("javt"));//false
console.log(str.startsWith("ja"));//true   //startsWith用来搜检字符串以什么开首
console.log(str.endsWith("pt"));//true   //endsWith以什么末端
console.log("1".repeat(20))//20 个 1     //repeat用来复制字符串

Array

let arr=[1,2,3,4,5];
let arr1=Array.from(arr);     //Array.from() 用来拷贝一份  
arr1=[2,2,3,4,55];
console.log(arr)
console.log(arr1);//[2,2,3,4,55]

console.log(Array.of(1,2,3))  //Array.of用于建立一个数组
let shuzu=[1,2,3,4,5,6]
console.log(shuzu.fill(4,1))  //fill传两个值后边谁人划定从一位最先悉数替代*/

object

let obj={x:1,y:1}; 
let obj1={};  
Object.assign(obj1,obj)         //Object.assign
obj1.x=2;                       /*1.兼并多个对象;2.克隆对象;3.为数组增加多个要领*/
console.log(obj1)
let obj2={a:2,b:"c"};           
//let obj1= Object.assign({},obj2,obj);
// console.log(obj1)//Object {a: 2, b: "c", x: 1, y: 1}
let obj3={aa:1,bb:2}
Object.assign(obj3,{
    sayhello:()=>{},
    sayhi:()=>{}
})
let person={
    name:"huahua",
    sex:"nan",
    age:18
}
let tao={
   // __proto__:person,
    xh:123
}
// console.log(tao)
Object.setPrototypeOf(tao,person)    //setPrototypeOf用于设置继续属性
console.log(tao.name)

一样es6新划定了一个==Symbol==新属性

ES5对象属性名都是字符串轻易形成属性名的争执。

var a = { name: 'lucy'};

a.name = 'lili';
如许就会重写属性

说的明白点实在Symbol就是为了处置惩罚这件事变,它示意举世无双的值
Symbol值不能与其他范例的值举行运算


// 没有参数的状况
        var s1 = Symbol();
        var s2 = Symbol();

        console.log(s1 === s2) // false

        // 有参数的状况
        var s1 = Symbol("foo");
        var s2 = Symbol("foo");

        console.log(s1 === s2) // false

Symbol值作为对象属性名时,不能用点运算符

        var mySymbol = Symbol();

        // 第一种写法
        var a = {};
        a[mySymbol] = 'Hello!';

        // 第二种写法
        var a = {
        [mySymbol]: 'Hello!'
        };

        // 第三种写法
        var a = {};
        Object.defineProperty(a, mySymbol, { value: 'Hello!' });
         // 以上写法都获得一样效果
        console.log(a[mySymbol]) // "Hello!"

防备对象的属性被串改

let chenxu={
            name:"chenxu",
            age:"17"
        }
        chenxu.name="晨旭"
        console.log(chenxu);//被修正*/
        let chenxu1={
            [Symbol('name')]:"chenxu",
            age:"17"
        }
        chenxu1[Symbol('name')]="晨旭";
        console.log(chenxu1.name);//undefind
        console.log(chenxu1)  //Object {age: "17", Symbol(name): "chenxu", Symbol(name): "晨旭"}

然则这里的Symbol在类外部也是能够接见的,只是不会出现在for…in、for…of循环中,也不会被Object.keys()、Object.getOwnPropertyNames()返回。但有一个Object.getOwnPropertySymbols要领,能够猎取指定对象的一切Symbol属性名!

    原文作者:青石巷
    原文地址: https://segmentfault.com/a/1190000010178054
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞