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


本文摘自PHP中文网,作者藏色散人,侵删。

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

本文操作环境: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

1 let id = Symbol("id");

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

1

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

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

1

2

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

2

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()

1

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

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

1

2

3

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

1

2

let s = Symbol('foo');

console.log(s instanceof Symbol); // false

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

【推荐学习:javascript高级教程

以上就是不属于javascript的数据类型是什么的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

jquery框架是什么?

详解javascript中的回调函数

javascript中this用法有哪些

javascript实现单张或多张图片持续无缝滚动

javascript中“===”的用法是什么

javascript是哪家公司开发的

详解javascript中的generator生成器

5个关于js作用域的陷阱(总结)

html引入外部javascript是什么属性

如何取消javascript中的异步任务?

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...