前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript即将推出新的两个原始数据类型

JavaScript即将推出新的两个原始数据类型

作者头像
@零一
发布2022-05-09 17:31:33
3450
发布2022-05-09 17:31:33
举报
文章被收录于专栏:前端印象前端印象

大家好,我是零一,JavaScript即将推出两个新的数据类型:RecordTuple ,这俩是啥呢?其实就是一个只读ObjectArray,其实在其它语言中已经有类似的数据类型了,例如 Python 中也有 Tuple(元祖)这一类型,作用也是一个只读的数组(在Python里叫只读的列表),一起来了解一下

基础写法

其实就是在原先的对象和数组前面加了个 #

可读特性

Record和Tuple的语法跟对象和数组是一样的,所以?

为啥报错了啊?开头有提到哦~因为这两个类型是 只读ObjectArray

非唯一性

在平时的开发中,数组与数组、对象与对象 都不适合直接用 === 进行比较判断,因为每个生成的对象在内存中的地址都不一样

要想真正比较两个数组或对象是否相等(即我们想要的内容都一样),需要遍历递归去一一对比,而现在呢?Record和Tuple能否解决这一问题呢?

可以看到,只要内部内容一致,即使是两个分别生成的Record或Tuple比较一下,也是相等的

普通对象和数组的转换

我可以用对象 RecordTuple 将普通的对象和数组转换

支持扩展运算符

我们也可以对Record和Tuple使用扩展运算符

JSON方法扩展

现在不是有 JSON.parseJSON.stringfy 两个方法嘛,据说草案中还提到一个不错的想法,那就是给 JSON 对象新增一个 parseImmutable 方法,功能应该就是直接将一个 Record字符串或Tuple字符串 解析成对应的Record和Tuple对象

提前体验

如果你想现在体验该功能,可以装一下babel的插件

在目录下创建 .babelrc,内容如下:

再创建一个 index.js,内容如下:

执行一下babel的命令编译一下

输出得到的 compiled.js 文件内容如下:

最后执行 compiled.js 即可获得结果

@babel/plugin-proposal-record-and-tuple 更多用法见 Babel 官方文档 https://babeljs.io/docs/en/babel-plugin-proposal-record-and-tuple#docsNav

应用场景

了解了那么多的内容,印象最深刻的应该就是 只读 这个特性,那么基于这个特性,Record 和 Tuple 有哪些应用场景呢?

  • 用于保护一些数据,比如函数的返回值、对象内部的静态属性…
  • 既然具有只读的特性,即不可变对象,那应该也可以作为对象的 key 值吧?

最后

我是零一,分享技术,不止前端!下期见~

有了这两个新的原始数据类型,你能想到什么应用场景?」欢迎在评论区留言!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基础写法
  • 可读特性
  • 非唯一性
  • 普通对象和数组的转换
  • 支持扩展运算符
  • JSON方法扩展
  • 提前体验
  • 应用场景
  • 最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档