欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

不属于javascript的数据类型是什么

程序员文章站 2022-03-05 19:01:54
...

不属于javascript的数据类型是interface,interface是js中的保留字;而javascript的数据类型有Undefined、Number、Symbol等等。

不属于javascript的数据类型是什么

本文操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

JavaScript的基本数据类型有:(1)Undefined、(2)Null、(3)Boolean、(4)String、(5)Number、(6)Symbol、(7)Object。ES6 增加了Symbol类型,下面主要是讲Symbol类型的一些相关知识点。

Symbol的特性

1、实例是唯一且不可改变的;一种唯一标识符,可用作对象的唯一属性名,这样其他人就不会改写或覆盖你设置的属性值。

1 let id = Symbol("id");

2、数据类型的特点:唯一性,即使是用同一个变量生成的值也不相等。

1 let id1 = Symbol("id");2 let id2 = Symbol("id");3 console.log(id1 == id2);  //false

3、数据类型的特点:隐藏性,for···in,object.keys() 不能访问。

1 let id = Symbol("id");2 let obj = {3     [id] : 'symbol'          
4 }5 for ( let key in obj){6     console.log(obj[key]);  //输出为空7 }

能够访问的方法:Object.getOwnPropertySymbols,会返回一个数组,成员是当前对象的所有用作属性名的 Symbol 值。

1 let id = Symbol("id");2 let obj = {3   [id] : 'symbol'      
4 }5 let arr = Object.getOwnPropertySymbols(obj);6 console.log(arr)  // [Symbol(id)]7 console.log(obj[arr[0]]) // 'symbol'

4、可多次使用同一个symbol值,官方提供了全局注册并登记的方法:Symbol.for()

let name1 = Symbol.for("name"); // 检测未创建后新建let name2 = Symbol.for("name"); // 检测已创建后返回console.log(name1 == name2); // true

通过这种方法就可以通过参数值获取到全局的symbol对象了,反之,可以通过Symbol.keyFor()获取到参数值。

let name1 = Symbol.for("name");
let name2 = Symbol.for("name");
console.log(Symbol.keyFor("name1")); // 'name'console.log(Symbol.keyFor("name2")); // 'name'

5、instanceof 的结果为 false

let s = Symbol('foo');
console.log(s instanceof Symbol); // false

注意:在创建symbol类型数据 时的参数只是作为标识使用,所以 Symbol() 作为参数也是可以的。

【推荐学习:javascript高级教程

以上就是不属于javascript的数据类型是什么的详细内容,更多请关注其它相关文章!

相关标签: javascript