首页 > 其他分享 >es5之后的es更新简述

es5之后的es更新简述

时间:2023-10-30 17:22:33浏览次数:23  
标签:ES6 es5 对象 Object 简述 引入 Array prototype es

ES5  新增

  1. 严格模式(Strict Mode):ES5引入了严格模式,通过在脚本或函数的开头添加"use strict";来启用。严格模式提供了更严格的语法和错误检查,帮助开发者编写更安全、更规范的代码。

  2. JSON对象支持:ES5将JSON(JavaScript Object Notation)作为一种原生的数据格式进行支持,提供了JSON.parse()JSON.stringify()方法,用于解析和序列化JSON数据。

  3. 新的数组方法:ES5新增了一些方便的数组方法,如Array.prototype.forEach()Array.prototype.map()Array.prototype.filter()Array.prototype.reduce()等,使得对数组的遍历和操作更加简洁和高效。

  4. Function.prototype.bind():ES5引入了Function.prototype.bind()方法,用于绑定函数的上下文(this)和预设参数,返回一个新的函数。这样可以方便地创建具有固定上下文和参数的函数。

  5. Object.create():ES5新增了Object.create()方法,用于创建一个新对象,以指定的原型对象作为新对象的原型。

  6. Getter和Setter:ES5引入了Getter和Setter方法,通过Object.defineProperty()方法可以定义对象属性的Getter和Setter函数,用于对属性的读取和设置进行控制。

  7. Array.isArray():ES5新增了Array.isArray()方法,用于判断一个值是否为数组类型。

ES6  新增

  1. 块级作用域变量(let和const):ES6引入了letconst关键字,用于声明块级作用域的变量。相比于var关键字,letconst具有更严格的作用域规则,可以避免变量提升和变量泄漏等问题。

  2. 箭头函数:ES6引入了箭头函数的语法,使用更简洁的语法定义函数。箭头函数具有更短的语法和更方便的上下文绑定,可以更好地处理this指向的问题。

  3. 模板字符串:ES6引入了模板字面量,使用反引号(`)来定义字符串,可以在字符串中插入变量和表达式,提供了更方便和可读性更高的字符串拼接方式。

  4. 解构赋值:ES6引入了解构赋值的语法,可以从数组或对象中提取值并赋给变量,使得代码更简洁和易读。

  5. 默认参数:ES6允许在函数定义时为参数提供默认值,当调用函数时没有传递对应参数时,将使用默认值。

  6. 扩展运算符:ES6引入了扩展运算符(...),可以将数组或对象展开为独立的元素,或将多个元素合并为一个数组或对象。

  7. 类和模块:引入了class关键字,可以更方便地定义类和面向对象的编程。同时,引入了模块化的语法,使用importexport关键字来导入和导出模块。模块化可以帮助开发者更好地组织和管理代码,提高代码的可维护性和可重用性。

  8. Promise:提供了一种更优雅的处理异步操作的方式,避免了回调地狱。

  9. 简化的对象字面量:可以直接在对象字面量中定义方法,不再需要使用冒号和function关键字。

  10. 迭代器和生成器:ES6引入了迭代器和生成器的概念,迭代器提供了一种遍历数据结构的统一方式,而生成器则是一种特殊的函数,可以通过yield关键字暂停和恢复函数的执行。

  11. Promise:ES6引入了Promise对象,用于处理异步操作。Promise可以更好地处理回调地狱问题,提供了一种更优雅和可读性更高的异步编程方式。

  12. 数组和对象的新方法:ES6新增了许多数组和对象的新方法,如Array.from()Array.find()Array.includes()Object.assign()等,提供了更方便和强大的操作数组和对象的方法。
  13. Set和Map数据结构:ES6引入了Set和Map两种新的数据结构,Set是一种无重复值的集合,Map是一种键值对的集合,提供了更方便和高效的数据存储和操作方式。
  14. for...of循环:ES6引入了for...of循环,用于遍历可迭代对象(如数组、字符串、Set、Map等),提供了一种更简洁和直观的遍历方式。
  15. Symbol:ES6引入了Symbol数据类型,表示独一无二的值,可以用作对象的属性名,提供了一种更安全和更灵活的属性定义方式。
  16. Proxy:ES6引入了Proxy对象,用于拦截和定制对象的操作,可以对对象的读取、赋值、函数调用等行为进行拦截和处理。
  17. Reflect:ES6引入了Reflect对象,提供了一组静态方法,用于操作对象,包括对象的属性获取、设置、函数调用等。

es7 新增

  1. Array.prototype.includes:新增了includes方法,用于判断数组是否包含指定的元素,返回布尔值。

  2. 指数运算符:引入了指数运算符(**),用于计算一个数的幂次方。

  3. Object.valuesObject.entries:新增了Object.valuesObject.entries方法,分别用于获取对象的值和键值对数组。

  4. String.prototype.padStartString.prototype.padEnd:新增了padStartpadEnd方法,用于在字符串的开头或结尾填充指定的字符,使字符串达到指定的长度。

  5. Async/Await:引入了asyncawait关键字,用于更方便地处理异步操作,使代码更加清晰和易读。

  6. SharedArrayBufferAtomics:引入了SharedArrayBufferAtomics对象,用于在多个线程之间共享内存和进行原子操作

es8 新增

  1. 异步迭代器(Async Iterators):引入了Symbol.asyncIteratorfor-await-of语法,用于更方便地处理异步迭代操作。

  2. Object.getOwnPropertyDescriptors:新增了Object.getOwnPropertyDescriptors方法,用于获取对象所有属性的描述符。

  3. 字符串填充方法改进:对padStartpadEnd方法进行了改进,允许指定填充字符串的重复次数。

es9 新增

  1. 异步迭代器方法改进:对异步迭代器的方法进行了改进,引入了returnthrow方法。

  2. Promise.prototype.finally:新增了finally方法,用于指定无论Promise状态如何都会执行的回调函数。

  3. Rest/Spread 属性:引入了对象的Rest和Spread属性,类似于数组的Rest和Spread操作。

es10 新增

  1. Array.prototype.flatArray.prototype.flatMap:新增了flatflatMap方法,用于扁平化数组和映射数组。

  2. Object.fromEntries:新增了Object.fromEntries方法,用于将键值对数组转换为对象。

  3. String.prototype.trimStartString.prototype.trimEnd:新增了trimStarttrimEnd方法,用于去除字符串开头和结尾的空格。

 

标签:ES6,es5,对象,Object,简述,引入,Array,prototype,es
From: https://www.cnblogs.com/wyhThink/p/17798359.html

相关文章

  • PostgreSQL pgBackRest 是最好的PG备份工具 ? (深入一些疑难问题 2)
    每天感悟突然想愤怒的时候,或别人认为你应该愤怒的时候,你不在愤怒,而是能理智的或冰冷的分析出为什么,原因是什么,并且尝试把自己放到他的位置去看明白原理或根本,恭喜你又升级了上次在安装和简单的实现了备份后,产生了很多的问题,基于这些问题我们持续的开始针对pgbackrest进行研究和发现......
  • PostgreSQL pgBackRest 是最好的PG备份工具 ? (小试牛刀 1)
    之前备份的工具一直在使用PGRMAN,潮流变化了,现在最新最推崇的PG备份软件是pgBackRest,今天来探究一下到底为什么他是目前最推崇的备份软件。根据GITHUB的介绍,pgbackrest目标是一个可信赖的容易使用的备份和恢复工具和一体化的解决方案,针对大型的数据库和多负载的情况下的选择,目前写......
  • 数据库信息速递:你的数据库部署到Serverless 类型的数据库是否合适? (译)...
    serverless类型的数据库在国外的数据行业中持续受到关注原始是什么?原因来自于对于一个开始新项目的应用程序开发人员来说,他们可以配置数据库,不需要担心计算和存储的大小,也不需要微调数据库配置,只需要对工作负载模式和事务量有一个大致的了解,就可以近似估算成本,这个观点非常吸引人,......
  • 论文复现01. RestainNet
    论文名称:RestainNet:aself-superviseddigitalre-stainerforstainnormalizationarxiv: https://arxiv.org/pdf/2202.13804.pdf论文的核心内容:自监督网络,把”灰度图“重新上色成HE染色的效果训练阶段在训练阶段,将原始的RGB图像分别提取Lab空间的L通道和HE染色矩......
  • 使用 Sealos 一键部署 Kubernetes 集群
    Sealos是一款以Kubernetes为内核的云操作系统发行版,使用户能够像使用个人电脑一样简单地使用云。与此同时,Sealos还提供一套强大的工具,可以便利地管理整个Kubernetes集群的生命周期。Sealos不仅可以一键安装一个单节点的Kubernetes开发环境,还能构建数千节点的生产高可......
  • 报错:The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more th
    在运行项目的时候遇到了这样一个报错,是数据库的问题但是不知道是什么原因,在网上搜了一下发现只需要在url后面加上serverTimezone=UTC这串代码就行了例如jdbc:mysql://localhost:3306/result?characterEncoding=UTF-8&serverTimezone=UTC ......
  • Pytest基础
    一、前言  Pytest基于Python设计,是一款开源免费、功能全面的单元测试框架,车载以太网测试中被广泛使用。二、工具说明Pycharm2023pytest7.4.3三、创建工程  创建工程时重点要求使用VituralEnvironment,这里直接选择。四、Pytest环境安装在根目录下创建文件Requiremen......
  • Kill detached screen session
    Listscreens:screen-listOutput:Thereisascreenon:23536.pts-0.wdzee(10/04/201208:40:45AM)(Detached)1Socketin/var/run/screen/S-root.Killscreensession:screen-S23536-Xquit......
  • PostgreSQL(kingbaseES) 中,可以使用 unnest 函数将一个包含多个值的字符串分割成多行
    在PostgreSQL中,您可以使用unnest函数将一个包含多个值的字符串分割成多行。unnest函数将一个数组(或者像我们的情况下是由STRING_TO_ARRAY函数生成的数组)展开为多行数据。假设您有一个表my_table,其中包含一个名为my_column的字符串列,其内容如下:my_column-----------......
  • MIGO Runtime Errors MESSAGE_TYPE_X program SAPLCKM4 in PERIODENART_BESTIMMEN
    用户在测试环境执行MIGO,系统dump检查系统后,发现是物料账期错误 修改账期,系统正常 ......