首页 > 编程知识 正文

js基础和js高级,js基础知识点

时间:2023-05-06 09:15:55 阅读:183313 作者:1779

一、ES6新增数据类型

        在ES5及以前数据类型分为基本数据类型和引用数据类型,基本数据类型有五种,分别是String、Number、Boolean、Undefined、Null这五种,而引用数据类型实际上只有一种,那就是object对象,像数组这类的其实都属于object数据类型。

        ES6新增了一种数据类型Symbol,它也属于基本数据类型,表示独一无二的值

        Symbol的特点如下:

                1.它属于基本数据类型

                2.每次调用Symbol返回的值都是唯一的,因此最好用一个临时变量存储起来

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

                3..调用Symbol的时候没有new

                4.它一般作为对象属性的标识符

let id = Symbol() let obj = { [id]: 'symbol' } console.log(obj[id])

                5.Symbol 作为对象属性的时候是不能被 for inObject.keysObject.values 遍历的

二、对象方法         1.Object.assign(target, source1, source2...)对象合并

        将 source1 和 source2 的属性复制到 target 上。

let s1 = { name:'小廖', age:18}let s2 = { sex:'男', age:99}let target = {}Object.assign(target,s1,s2)console.log(target) //输出{name:'小廖',age:99,sex:'男'}

        由上面我们可以看到,相同的属性会覆盖掉,后面对象的age覆盖了前面的age 

        重点:如果我不想两个对象当中相同的属性被覆盖怎么办?

        我们就可以用ES6新增的Symbol作为对象的属性标识符,实例代码如下:

let id1 = Symbol()let id2 = Symbol()let s1 = { [id1]: 1, name: '小廖', age: 18}let s2 = { [id2]: 2, sex: '男', age: 99}let target = {}Object.assign(target, s1, s2)console.log(target) //输出{name:'小廖',age:99,sex:'男',Symbol():1,Symbol():2}

        在输出结果中我们可以看到,id的属性没有覆盖,因为被Symbol变为唯一的属性了

        2.Object.keys(obj)        //遍历对象属性,以数组的形式返回所有属性名         3.Object.values(obj)        //遍历对象的属性值,以数组的形式返回所有属性值 三、销毁对象

        1.delete obj.属性        //删除属性

        2.obj.属性 = " "        //将属性值清空

        前两种方法都没有将对象销毁,只是删除了对象的属性或者将属性值清空,如果要让对象不存在,那么应该使用 obj = null 才能销毁对象

四、ES6展开符

        展开符是ES6新增加的语法,一般的作用是用来合并数组或者对象,标识符是...,代码如下:

let arr1 = [4,5,6,7]let arr2 = [1,2,3,...arr1,8,9]console.log(arr2)//输出[1,2,3,4,5,6,7,8,9]

        由如上代码可见,我们用展开符将arr1数组的内容全都复制到了arr2数组中去了

        还有一些情况,比如将展开符放在变量上

let [a, ...b] = [1, 2, 3, 4, 5, 6]console.log(b)//输出[2,3,4,5,6]

        所以展开符的用法是非常多样的,感兴趣可以自己测试一下。

五、对象数组的解构

        解构就是可以将对象或者数组中的属性拿出来,作为变量使用,而不需要引用全部的对象属性,格式为{ 属性名 } = 对象

let obj = { name: 'jack', age: 18}const { age } = objconsole.log(age)//输出18

        上面代码中将age属性从obj对象中单独解构出来进行引用。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。