当前位置: 首页 > news >正文

总结ECMAScript和JavaScript的区别

ECMAScript是一种由ECMA国际组织制定的脚本语言标准,而JavaScript是ECMAScript的一种实现。简单来说,ECMAScript是JavaScript的规格,JavaScript是ECMAScript的一种实现。

ECMAScript是在1997年由ECMA国际组织发布的浏览器脚本语言标准,它规定了语言的组成部分,如语法、类型、语句、关键字、保留字、操作符、对象等。而JavaScript是ECMAScript的一种实现,它不仅包含了ECMAScript的全部特性,还在此基础上进行了扩展,例如DOM(文档对象模型)和BOM(浏览器对象模型),使其能够在浏览器中操作DOM和BOM,在Node环境中可以做读写文件之类操作。

换言之,JavaScript是ECMAScript的一种实现,它遵循ECMAScript的规范,但在某些特定的功能上可能有所扩展。例如,JavaScript实现了ECMAScript语言标准,并且还在这个基础上做了一些扩展,这样我们可以在浏览器中操作DOM和BOM,在node环境中可以做读写文件之类操作。

ECMAScript的版本通常以数字表示,如ES3、ES5、ES6等,而JavaScript的版本也是如此,如V8引擎支持的JavaScript版本。

65ECMAScript和JavaScript的关系可以概括为:ECMAScript是JavaScript的规格,JavaScript是ECMAScript的一种实现。

ECMAScript是JavaScript的基础,JavaScript在ECMAScript的基础上做了哪些扩展,有哪些特性?

  1. 从头到尾搜索数组:在 JavaScript 中,通过 find() 和 findIndex() 查找数组中的值是一种常见做法。然而,这些方法从数组的开始进行遍历。为了解决这个问题,ECMAScript 2023 引入了 findLast() 和 findLastIndex() 方法,它们可以从数组的末尾开始遍历,这两个方法适用于数组和类数组。

  2. Hashbang 语法:在 ECMAScript 2023 中,# 符号被引入作为一种新的语法,用于在字符串中插入特殊字符。这种语法在处理 URL 参数时非常有用,可以帮助我们更好地处理复杂的 URL 结构。

  3. 通过副本更改数组:在 ECMAScript 2023 中,我们可以通过 toReversed()toSorted()toSpliced() 和 with() 方法来改变数组的顺序,这些方法可以让我们对数组进行更灵活的操作。

  4. Symbol 作为 WeakMap 的键:在 ECMAScript 2023 中,我们可以使用 Symbol 类型作为 WeakMap 的键,这为我们提供了更多的灵活性和安全性。

相关文章:

  • sublim安装Autoprefixer插件
  • 滑动窗口协议仿真(2024)
  • GoldenGate工作原理及应用场景
  • 面试算法91:粉刷房子
  • CentOS使用docker安装mysql并使用navicat 远程链接
  • scroll、offset、client —— JS三大家族
  • 生成式AI:革新软件开发流程与工具的未来趋势
  • MySQL中的开发基于Python的SQL工具类操作数据库简单示例
  • 【鸿蒙4.0】安装DevEcoStudio
  • vue-springboot基于Java的人力资源管理系统 企业员工考勤打卡请假系统的设计与实现
  • 向爬虫而生---Redis 基石篇2 <拓展Hash>
  • 基于springboot的靓车汽车销售网站
  • Spark---RDD介绍
  • clickhouse-client INSERT CSV/TSV时跳过错误行
  • 代码随想录算法训练营第九天 | KMP更精良总结
  • 【Amaple教程】5. 插件
  • 【React系列】如何构建React应用程序
  • co模块的前端实现
  • echarts花样作死的坑
  • express.js的介绍及使用
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Java读取Properties文件的六种方法
  • Java深入 - 深入理解Java集合
  • Spring Cloud Feign的两种使用姿势
  • 安装python包到指定虚拟环境
  • 我看到的前端
  • 一文看透浏览器架构
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • puppet连载22:define用法
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​人工智能书单(数学基础篇)
  • ​香农与信息论三大定律
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (利用IDEA+Maven)定制属于自己的jar包
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (译) 函数式 JS #1:简介
  • .NET Core 项目指定SDK版本
  • .net 微服务 服务保护 自动重试 Polly
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .net的socket示例
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!