es6 Symbol

值类型和引用类型:

介绍Symbol之前,首先梳理一下js的数据类型。js数据类型分为两大类:值类型和引用类型。

值类型:number,string,null,undefined,boo

引用类型:Object(Array,Function)

值类型和引用类型的区别:

1.值类型保存在栈中

引用类型保存在堆中

2.值类型:变量直接的互相赋值,是重新开辟一块内存空间,变量之间的变动互不影响

引用类型:变量之间的互相赋值是指向对象的一个指针,该指针保存在栈中

3.值类型用typeof检测数据类型

指针类型用instanceof检测数据类型

Symbol的介绍:

Symbol是es6 中引入的一种新的原始数据类型,表示独一无二的值,是js的第七种数据类型,而不是构造函数

Symbol的作用:

Symbol可以产生一个独一无二的值,可以避免属性名之间互相冲突

Symbol用法:

1.声明Symbol

Symbol可以接受一个字符串作为参数,表示对Symbol实例的描述,比较容易区分

可以用es2019提供的属性description返回描述的值

2.Symbol在对象中可作为属性名

 3.属性名遍历

Symbol作为属性名遍历的时候,通过for...in,for...of不能拿到Symbol属性名

 但是,通过Object.getOwnPropertySymbols()方法可以取到指定对象所有的Symbol属性名

 

 暂时总结这些,后续再进行学习补充。

原文地址:https://www.cnblogs.com/zxmonster/p/11903849.html