ES6的数据类型的属性和方法

51 阅读4分钟

ES6对象新增的属性和方法

         // 1.Object.is();判断两个数据是否相等
            var res = Object.is(NaN,NaN)
            console.log(res)


            // 2. 合并2个或者多个对象  合并成一个对象
            // Object.assign();
            // ... 展开运算符

            var obj = {
                name:'zhngsan1',
                age : 20
            }
            var obj1 = {
                height:'178cm',
                age : 30
            }
            var obj2 ={
                address : '上海'
            }
            var res = Object.assign(obj,obj1,obj2)
            console.log(res)

            // 3.Object.hasOwn : ES6出现 取代 ES5里的 obj.hasOwnProperty 
            // 判断某个属性是否是对象的自身属性;
            Object.prototype.height = "178cm"
            var obj4 = {
                myname:'xiaole',
                age:20
            }

            for(let key in obj4){
                /* if(obj4.hasOwnProperty(key)){
                    console.log(obj4)
                } */
                if(Object.hasOwn(obj4,key)){
                    console.log(obj4)
                }
            }

            // 4. Object.seal(); 把对象变成不可配置对象    不能删除可以修改
            var obj5 = {
                myname : '张三',
                age : 20
            }
            Object.seal(obj5)
            delete obj5.myname
            console.log(obj5)


            // 5. 获取对象的所有键名;var 键名数组 =  Object.keys(对象)
            var obj6 = {
                myname : '张三',
                age : 20
            }
            var arr = Object.keys(obj6)
            console.log(arr)


            // 6. 获取对象所有的键值 : var 键值的数组 = Object.values(对象)
            var obj6 = {
                myname : '张三',
                age : 20
            }
            var arr1 = Object.values(obj6)
            console.log(arr1)

ES6对对象写法的更新

     // ES6对象写法更新
            // 1.对象里面函数的简写
                /* var obj = {
                    name : '张三',
                    // 这种简写仅限于对象中写法
                    fn(){
                        console.log('fn')
                    }
                }
                obj.fn()    //fn */
            // 箭头函数简写
                /*  var obj = {
                        fn:()=>{
                            console.log('fn')
                        }
                    }
                    obj.fn()  //fn */


            // 2. 键名和键值的简写  ;
            // 对象里的键名和键值相同的时候 可以省略掉一个;
            // var myname = "张三";
            // var age = 20;

            // var obj = {
            //     // myname:myname, // 键名和键值 相同了 ,可以简写一个;
            //     myname,
            //     age,
            //     height:"178cm"
            // }
            // console.log(obj);


              // 3.动态的键名 ;键名可以是变量 ;
            // 对象里 如果键名需要解析变量 那么 需要加上 []; 

            // 对象的键名不能重复     键名只能是字符串
            // var myobj = {test:"hello"};
            // var myage = "age"
            // var str = "hello"; 
            // var obj = {
            //     myname:"张三",
            //     [myage]:myage,
            //     [str+"1"]:"你好",
            //     [myobj]:"hello"
            // }

            // console.log(obj);

            // for(let key in obj){
            //     console.log(typeof key);
            // }



            // 数组去重,利用对象的贱命不重复对象
          /*   var arr = ["a","b","c","b","a","b"];
            var obj = {}
            for(let i = 0; i < arr.length;i++){
                console.log(arr[i])
                obj[arr[i]] = 1
            }
            console.log(obj)
            var newArr =[]
            for(let key in obj){
                newArr.push(key)
            }
            console.log(newArr) */

ES6对于字符串方法的扩展

          ES6对于字符串方法的扩展
                1.repeat()方法 : 重复输出字符串
                2.startsWith() : 判断字符串是否以某个字符开头返回值是布尔值
                3.endsWith() : 判断字符串是否以某个字符结尾返回值是布尔值
                4.padStart() : 在前面补全 指定字符
                5.padEnd() : 在字符串后面补全指定字符
                6.includes() : 判断字符串是否包含某个字符
                */
               //为什么原始数据类型可以使用方法属性。(万物皆对象)包装函数概念:
                    //在js中里面的包装函数类型有:Number,String ,bingInt,Symbol
                    // 在调用原始类型数据Number,String ,bingInt,Symbol时,首先会生成一个包装对象,然后调用包装对象字符串的方法,调用完成后在底层销毁这个包装对象

                // 1.repeat()方法 : 重复输出字符串
                // ES5循环输出字符串次数
                /*     var str = '*';
                    for(let i = 0;i < 3;i++){
                        str+='*'
                    }
                    console.log(str) */

                // ES6循环输出字符串次数

                /*  var str = '*'
                    var res = str.repeat(5)
                    console.log(res)  //输出*****    */

                //2.startsWith() : 判断字符串是否以某个字符开头
                    /* var str = 'abcdefg'
                   console.log(str.startsWith('ab')) //true  
                    //通过正则表达式获取
                    var res = /^a[a-zA-Z]+/ 
                    console.log(res.test(str)) */

                //3.endsWidth():判断字符串是否以某个字符串进行结尾
                   /*  var str = 'abcdefg'
                    console.log(str.endsWith('g'))  //true
                    // 通过正则表达式
                    var res = /[a-zA-Z]+g$/ 
                    console.log(res.test(str)) //true */

                //  // 4. padStart:在前面补全 指定字符
                //     var str = "abc";
                //     var res =  str.padStart(5,"*");
                //    console.log(res);

                // 5. padEnd :在字符串后面补全指定字符
                // var str = "abc";
                // var res = str.padEnd(6, ".");
                // console.log(res);

                // 6.includes :判断字符串是否包含某个字符
                //     var str = "abcdef";
                //    console.log(  str.includes("cdf"));

ES6中Number和Math新增的方法

          // 一、Math新增方法 
                // 1.Math.trunc() 去掉小数部分

               /*  var num = 3.14
                var res = Math.trunc(num)
                console.log(res) */

                // 2.Math.sign(): 判断一个数是正数还是负数 ,正数返还 1 ;负数返还-1  0就返还0

               /*  var num = -10
                console.log(Math.sign(num)) */

                // 3.Math.sqrt():求平方根

                /* var num = 4
                console.log(Math.sqrt(num)) */

                // 4.Math.cbrt():求立方根

                /* var num = 8
                console.log(Math.cbrt(num)) */

                // 5.Math.hypot():求所有参数平方和的平方根 括号里面的参数最少一个,如果是一个开出来的值就是本身
                /*   console.log(Math.hypot(2)) */

                // 二、number新增内容
                // 1.Number.isFinite(); 有限的数就会返还true ,否则就是false

                /* var num = Math.pow(2,1024)//平方数,括号内第一个数是底数,第二个数是指数
                console.log(Number.isFinite(num)) */

                 // 2.Number.isNaN();判断一个字符是否是 NaN 是就返还true 否则就返还false
                 // js里的 isNaN() :判断是不是一个非数字  如果是非数字就返还true 否则就返还false。
                /*  console.log(Number.isNaN(3))  //false
                 console.log(Number.isNaN(NaN))//true */

                 //3.判断是否是一个整数  Number.isInteger
                 /* var num = 3
                 console.log(Number.isInteger(num)) //true
                 */

                 // 4.Number.parseInt() : 和 js里的parseInt 一致 ;
                /* var num = 3.1454514
                console.log(Number.parseInt(num)) //3
                console.log(Number.parseFloat(num)) //3.1454514 */