JavaScript的Record和Tuple怎么用
导读:本文共2515字符,通常情况下阅读需要8分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 前言JavaScript即将推出两个新的数据类型:Record和Tuple,这俩是啥呢?其实就是一个只读的Object和Array,其实在其它语言中已经有类似的数据类型了,例如 Python 中也有 Tuple(元祖)这一类型,作用也是一个只读的数组(在Python里叫只读的列表),一起来了解一下,这个特性是一个第2阶段提案(即差不多稳了)。基础写法//Reco... ...
目录
(为您整理了一些要点),点击可以直达。JavaScript即将推出两个新的数据类型:Record和Tuple,这俩是啥呢?其实就是一个只读的Object和Array,其实在其它语言中已经有类似的数据类型了,例如 Python 中也有 Tuple(元祖)这一类型,作用也是一个只读的数组(在Python里叫只读的列表),一起来了解一下,这个特性是一个第2阶段提案(即差不多稳了)。
其实就是在原先的对象和数组前面加了个#
Record和Tuple的语法跟对象和数组是一样的,所以?
为啥报错了啊?开头有提到哦~因为这两个类型是只读的Object和Array
在平时的开发中,数组与数组、对象与对象 都不适合直接用===进行比较判断,因为每个生成的对象在内存中的地址都不一样
要想真正比较两个数组或对象是否相等(即我们想要的内容都一样),需要遍历递归去一一对比,而现在呢?Record和Tuple能否解决这一问题呢?
可以看到,只要内部内容一致,即使是两个分别生成的Record或Tuple比较一下,也是相等的
我可以用对象Record和Tuple将普通的对象和数组转换
我们也可以对Record和Tuple使用扩展运算符
现在不是有JSON.parse和JSON.stringfy两个方法嘛,据说草案中还提到一个不错的想法,那就是给 JSON 对象新增一个parseImmutable方法,功能应该就是直接将一个 Record字符串或Tuple字符串 解析成对应的Record和Tuple对象
如果你想现在体验该功能,可以装一下babel的插件
在目录下创建.babelrc,内容如下:
再创建一个index.js,内容如下:
执行一下babel的命令编译一下
输出得到的compiled.js文件内容如下:
最后执行compiled.js即可获得结果
了解了那么多的内容,印象最深刻的应该就是只读这个特性,那么基于这个特性,Record 和 Tuple 有哪些应用场景呢?
用于保护一些数据,比如函数的返回值、对象内部的静态属性...
既然具有只读的特性,即不可变对象,那应该也可以作为对象的 key 值吧?
JavaScript的Record和Tuple怎么用的详细内容,希望对您有所帮助,信息来源于网络。