| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 原来ES7~12分别增加了这些属性呀 -> 正文阅读 |
|
[JavaScript知识库]原来ES7~12分别增加了这些属性呀 |
ES7includes方法数组中新增了includes方法,用来判断数组中是否存在某一元素,在此之前进行这样的判断是使用indexOf判断下标值,小于0时则代表不存在。
includes返回布尔值,indexOf返回数组的下标 指数运算ES7增加了指数运算的操作符,两个*号(**),在此之前通过 Math.pow 来计算
以上都表示 num 的四次方,执行结果都为81 ** 运算符通过babel编译成es5的语法时,也是使用的 Math.pow ES8Object.values和Object.entriesObject.keys (ES6之前就有的属性) 获取对象的所有key值,Object.values获取对象的所有value值,Object.entries会返回一个数组,数组中包含每一个key和value元素组成的数组
分别获取数组、对象和字符串的key、value和由key、value组成的数组 stringPadding对字符串分别使用padStart和padEnd可以进行头、尾填充,传入填充后的字符串长度和填充内容
分别对字符串的头尾进行了填充以及一个小案例 Trailing Commas尾部逗号,允许函数在定义形参及传递参数的时候,最后一个参数后增加一个逗号(,)
在最后一个参数后增加逗号,也不会被认为是错误的写法 getOwnPropertyDescriptors用于获取对象的所有属性的描述
包含是否可枚举(enumerable)、可修改(writable)、重新定义(configurable)及value值 其它
ES9所有属性
ES10flat和flatMapflat这个函数是用来对数组降维的,只需要传入需要降维的层级
此时传入降维的层次是2,所以四维数组的数据降了两维,还有两维 flatMap这个方法会先对数组遍历,再进行降维操作,作用相当于map+flat
此时遍历出每组元素时候,通过空格切割成数组,flatMap会直接降维 Object.fromEntriesObject.fromEntries是将entries这样的数组类型转换成对象
分别将对象、数组、字符串变成entries后,再通过fromEntries转为对象,fromEntries并不是反向的Object.entries操作,不会恢复数组或者字符串的类型 trimStart trimEndtrim可以用于去除首尾空格,ES10又增加了trimStart trimEnd分别用于在字符串头 尾部去除空格
通过字符串的长度可以判断是否去除了首尾的空格 其它
ES11bigInt在此之前表示大数字可用 Number.MAX_SAFE_INTEGER,但这种表示方式如果要进行计算,是存在精度问题的,ES11增加了一种表示大数字的方式,在数字后面写上字母n,如1234567890987654321n。 但这种方式进行运算,仍有一些规则
以上MAX_SAFE_INTEGER运算 和 bigInt 转Number就都出现了精度丢失的问题 Nullish Coalescing Operator空值合并操作符(??),对数据进行布尔值的判断,将null和undefined的数据判断为false,就会取运算符后面的值,而或运算符(||)对于null、undefined、空字符串和0都判断为false
两者仅在空字符串和数字0的情况判断会不一致 Optional Chining可选链(?.)在对象中使用,对数据的存在/可读取与否进行判断,当它不为null和undefined时,才会往下操作。
通过可选链与 && 操作符所实现的效果一致,但代码更为简洁 globalThisjavascript代码可以运行在浏览器或者nodejs中,这两个容器获取全局对象的方式不相同,在浏览器中可以通过 window 或者 this,在node端需要通过global。es11中进行了统一,使用globalThis,无论在浏览器端或者node端都可以直接获取全局对象。
浏览器中打印的是window对象,node端打印的是global对象 其它
ES12FinalizationRegistry用于对象被垃圾回收器(GC)回收的时候指定一个回调,通过 register 进行注册
GC是不定时的检测有没有可回收的垃圾,所以当对象指向null时,不会马上执行获取回调的函数,不能在nodejs中测试,只能在浏览器中测试,因为在nodejs中执行完成会关闭该进程,浏览器运行时是一个进程,不会关闭。 WeakRef直接将对象A赋值给对象B,他们共同指向一个内存地址0x100,因为此时是强引用,即使A指向null之后,0x100仍被B指向,所以0x100不会被销毁。 如果希望A指向null之后,0x100被销毁,那么可以使用 weakRef 实现弱引用。
通过new关键字创建弱引用,通过deref方法获取数据,当引用的对象被回收后,弱引用生成的对象也就获取不到了 logical assignment operators赋值逻辑运算,相当于是逻辑运算后,再进行赋值的操作
逻辑赋值运算 就像+= 和 +1之后再赋值一样,是一种运算的语法糖 Numeric Separator数字分隔符,较大的数字可以通过下划线(_)进行分割,使代码可读性更强
执行结果会去除下划线,以十进制数据展示 replaceAllreplaceAll() 方法返回一个新字符串,新字符串所有满足 pattern(第一个参数) 的部分都已被replacement(第二个参数) 替换。
replaceAll会替换所有符合条件的,而replace只会替换掉第一个 以上就是ES7-12包含的大部分属性,关于js高级,还有很多需要开发者掌握的地方,可以看看我写的其它博文,持续更新中~ |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:50:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |