资讯专栏INFORMATION COLUMN

es6 知识总结--3

Keagan / 959人阅读

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://www.ucloud.cn/yun/83966.html

相关文章

  • es6知识总结(一)

    摘要:知识点总结一,,能重复声明,有前置功能。浅拷贝一个数组设置原型。永远是唯一的,不可能和别的重复,可以阻止对象的属性被篡改前面不能使用操作符。和的区别键名可以是任何数据类型初始化的时候必须一次性指定键名和键值。 es6知识点总结(一) let,var,const var:能重复声明,有前置功能。 let:有块级作用域,没有前置功能,不能重复声明。 const:有块级作用域,用来声明常量(...

    HelKyle 评论0 收藏0
  • ES6-7

    摘要:的翻译文档由的维护很多人说,阮老师已经有一本关于的书了入门,觉得看看这本书就足够了。前端的异步解决方案之和异步编程模式在前端开发过程中,显得越来越重要。为了让编程更美好,我们就需要引入来降低异步编程的复杂性。 JavaScript Promise 迷你书(中文版) 超详细介绍promise的gitbook,看完再不会promise...... 本书的目的是以目前还在制定中的ECMASc...

    mudiyouyou 评论0 收藏0
  • es6 知识总结--4

    摘要:函数中使用关键词定义构造函数的的方法和属性上面代码首先用定义了一个类,可以看到里面有一个方法,这就是构造方法,而关键字则代表实例对象。这是因为子类没有自己的对象,而是继承父类的对象,然后对其进行加工。 ES6 classes(类) 我们在编程过程中常常用到面向对象,对象创建实例这个方法,但是es6中给我封装了一个class类下边给大家介绍一下! Ecmascript5方法 //万事万物...

    MkkHou 评论0 收藏0
  • 新手开发中常用ES6基础知识总结

    摘要:感觉对我这种没实习没工作的新手,虽然一些高级的功能暂时用不上,但是一些基础的知识还是为平时的开发提供了巨大的便利。学习告一段落,现在结合平时的开发,总结一些常用的知识。日常开发中,块级作用域中使用的变量,尽量使用或者声明。使用时,进行合并。 很早之前就学过TypeScript和ES6,后来做项目的时候零零散散用了些。这几天又系统地把ES6的知识看了一遍。感觉对我这种没实习没工作的新手,...

    Paul_King 评论0 收藏0
  • ES6 常用知识总结

    摘要:常用知识总结之前总结了中的一些知识点。在年正式发布了,简称,又称为。作为构造函数的语法糖,同时有属性和属性,因此同时存在两条继承链。子类的属性,表示构造函数的继承,总是指向父类。 ES6常用知识总结 之前总结了es5中js的一些知识点。这段时间看了石川blue老师讲解的es6课程,结合阮一峰老师的es6教程,随手做了一些笔记和总结分享给大家。内容还是es6主要的知识点,基本没有什么创新...

    leap_frog 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<