• ECMA各版本特性


    ㅤㅤㅤ
    ㅤㅤㅤ
    ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ(最聪明的人是最不愿意浪费时间的人 - 但丁)
    ㅤㅤㅤ
    ㅤㅤㅤ
    ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ在这里插入图片描述

    ECMA5

    • 严格模式(use strict)

      • 作用
      1. 消除不安全之处,保证安全运行
      2. 提升编译效率
      3. 未来发展趋势
      • 规则:
        • 变量先定义在使用
        • 不允许变量重名
        • 不允许使用eval
        • 不允许delete
        • 不允许with语句
    • 提供了json序列化方法
      JSON.parse、JSON.stringify

    • Object对象新增了方法

      // 添加或更改对象属性
      Object.defineProperty(object, property, descriptor)
      // 添加或更改多个对象属性
      Object.defineProperties(object, descriptors)
      // 访问属性
      Object.getOwnPropertyDescriptor(object, property)
      // 以数组返回所有属性
      Object.getOwnPropertyNames(object)
      // 以数组返回所有可枚举的属性
      Object.keys(object)
      // 访问原型
      Object.getPrototypeOf(object)
      // 阻止向对象添加属性
      Object.preventExtensions(object)
      // 如果可将属性添加到对象,则返回 true
      Object.isExtensible(object)
      // 防止更改对象属性(而不是值)
      Object.seal(object)
      // 如果对象被密封,则返回 true
      Object.isSealed(object)
      // 防止对对象进行任何更改
      Object.freeze(object)
      // 如果对象被冻结,则返回 true
      Object.isFrozen(object)
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
    • 数组新增了一些方法

    Array.prototype.indexOf
    Array.prototype.every
    Array.prototype.some
    Array.prototype.filter
    Array.prototype.map
    Array.prototype.forEach
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 函数增加了.bind方法

    ECMA6

    • 模块化

    • 箭头函数

    • 函数参数默认值

    • 模板字符串

    • 解构赋值

    • 延展操作符

    • 对象属性简写

    • Promise

    • Let与Const

    ECMA7

    • 数组includes方法,用于判断是否包含某个值
    • a ** b指数运算符,它与 Math.pow(a, b)相同

    ECMA8

    • async/await

    • Object.values()

    • Object.entries()

    • String padding: padStart()和padEnd(),填充字符串达到当前长度

    • 函数参数列表结尾允许逗号

    • Object.getOwnPropertyDescriptors()

    • ShareArrayBuffer和Atomics对象,用于从共享内存位置读取和写入

    ECMA9

    • 异步迭代

    • Promise.finally()

    • Rest/Spread 属性

    • 正则表达式命名捕获组(Regular Expression Named Capture Groups)

    • 正则表达式反向断言(lookbehind)

    • 正则表达式dotAll模式

    • 正则表达式 Unicode 转义

    • 非转义序列的模板字符串

    ECMA10

    • 行分隔符(U + 2028)和段分隔符(U + 2029)符号现在允许在字符串文字中,与JSON匹配

    • 更加友好的 JSON.stringify

    • 新增了Array的flat()方法和flatMap()方法

    • 新增了String的trimStart()方法和trimEnd()方法

    • Object.fromEntries()

    • Symbol.prototype.description

    • String.prototype.matchAll

    • Function.prototype.toString()现在返回精确字符,包括空格和注释

    • 简化try {} catch {},修改 catch 绑定

    • 新的基本数据类型BigInt

    • globalThis

    • import()

    • Legacy RegEx

    • 私有的实例方法和访问器

    ECMA11

    • String.prototype.matchAll 用于字符串批量匹配正则, 返回一个 可迭代对象
    • 类的私有属性 #字段
    • Promise.allSettled 不管参数中的promise是fulfilled还是rejected,都会等参数中的实例都返回结果,包装实例才会结束。
    • 可选链操作符 使用" ?. "可选链式操作符, 会自动检测 ? 前面的对象是否存; 存在 则调用 , 不存在 则为 undefined
    • 动态 import 导入
    • bigInt 用于大数值运算

    ECMA12

    • 新的逻辑操作符 ?? 相比较|| 0和’'也会被认为是true
    • String.prototype.replaceAll 有了这个 API,替换字符不用写正则了
    • Promise.any() 返回第一个fullfilled 的 promise ,若全部 reject,则返回一个带有失败原因的 AggregateError
    • WeakRefs 使用弱引用对象,该弱引用不会阻止 GC,并且可以在 GC 前使用 WeakRef.prototype.deref ( ) 解除该引用
  • 相关阅读:
    Linux运维-Web服务器的配置与管理(Apache+tomcat)(没成功,最后有失败经验)
    java“贪吃蛇”小游戏
    Flink系列之Flink基础使用与核心概念
    【微信小程序】条件渲染 列表渲染 原来这样用?
    排序算法——直接插入排序
    【2023】COMAP美赛数模中的大型语言模型LLM和生成式人工智能工具的使用
    JavaScript中Bom节点和表单的获取值
    国内某头部理财服务提供商基于白鲸调度系统建立统一调度和监控运维
    spark算子基础
    《广西开放大学电大搜题微信公众号——探索学习的新途径》
  • 原文地址:https://blog.csdn.net/qq_42427109/article/details/125561672