ECMAScript 语法

ECMAScript 语法

  • 一、ECMAScript
    • 1.ECMAScript简介
    • 2.ECMAScript历史
  • 二、ECMAScript 语法
    • 区分大小写
    • 变量是弱类型的
    • 每行结尾的分号可有可无
    • 注释与 Java、C 和 PHP 语言的注释相同
    • 括号表示代码块

ECMAScript 语法

一、ECMAScript

ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,所以它可以理解为是JavaScript的一个标准,但实际上后两者是ECMA-262标准的实现和扩展。


1.ECMAScript简介

ECMAScript是由网景的布兰登·艾奇开发的一种脚本语言的标准化规范;最初命名为Mocha,后来改名为LiveScript,最后重命名为JavaScript。1995年12月,升阳与网景联合发表了JavaScript。1996年11月,网景公司将JavaScript提交给欧洲计算机制造商协会进行标准化。ECMA-262的第一个版本于1997年6月被Ecma组织采纳。ECMA Script是ECMA-262标准化的脚本语言的名称。尽管JavaScript和JScript与ECMAScript兼容,但包含超出ECMA Script的功能。
ECMAScript是一种可以在宿主环境中执行计算并能操作可计算对象的基于对象的程序设计语言。ECMAScript最先被设计成一种Web脚本语言,用来支持Web页面的动态表现以及为基于Web的客户机—服务器架构提供服务器端的计算能力。但作为一种脚本语言, ECMAScript具备同其他脚本语言一样的性质,即“用来操纵、定制一个已存在系统所提供的功能,以及对其进行自动化”。


2.ECMAScript历史

1998年6月,ECMAScript 2.0版发布。
1999年12月,ECMAScript 3.0版发布,成为JavaScript的通行标准,得到了广泛支持。
2007年10月,ECMAScript 4.0版草案发布,对3.0版做了大幅升级,预计次年8月发布正式版本。草案发布后,由于4.0版的目标过于激进,各方对于是否通过这个标准,发生了严重分歧。以Yahoo、Microsoft、Google为首的大公司,反对JavaScript的大幅升级,主张小幅改动;以JavaScript创造者Brendan Eich为首的Mozilla公司,则坚持当前的草案。
2008年7月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激进,ECMA开会决定,中止ECMAScript 4.0的开发,将其中涉及现有功能改善的一小部分,发布为ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为Harmony(和谐)。会后不久,ECMAScript 3.1就改名为ECMAScript 5。
2009年12月,ECMAScript 5.0版正式发布。Harmony项目则一分为二,一些较为可行的设想定名为JavaScript.next继续开发,后来演变成ECMAScript 6;一些不是很成熟的设想,则被视为JavaScript.next.next,在更远的将来再考虑推出。
2011年6月,ECMAscript 5.1版发布,并且成为ISO国际标准(ISO/IEC 16262:2011)。
2013年3月,ECMAScript 6草案冻结,不再添加新功能。新的功能设想将被放到ECMAScript 7。
2013年12月,ECMAScript 6草案发布。然后是12个月的讨论期,听取各方反馈。
2015年6月17日,ECMAScript 6发布正式版本,即ECMAScript 2015。
ECMA的第39号技术专家委员会(Technical Committee 39,简称TC39)负责制订ECMAScript标准,成员包括Microsoft、Mozilla、Google等大公司。TC39的总体考虑是,ES5与ES3基本保持兼容,较大的语法修正和新功能加入,将由JavaScript.next完成。
截止发布日期,JavaScript的官方名称是ECMAScript 2015,Ecma国际意在更频繁地发布包含小规模增量更新的新版本,下一版本将于2016年发布,命名为ECMAScript 2016。新版本将按照ECMAScript+年份的形式发布。
ES6是继ES5之后的一次主要改进,语言规范由ES5.1时代的245页扩充至600页。ES6增添了许多必要的特性,例如:模块和类,以及一些实用特性,例如Maps、Sets、Promises、生成器(Generators)等。尽管ES6做了大量的更新,但是它依旧完全向后兼容以前的版本,标准化委员会决定避免由不兼容版本语言导致的“web体验破碎”。结果是,所有老代码都可以正常运行,整个过渡也显得更为平滑,但随之而来的问题是,开发者们抱怨了多年的老问题依然存在。
截止发布日期,没有一款完全支持ES6的JavaScript代理(无论是浏览器环境还是服务器环境),所以热衷于使用语言最新特性的开发者需要将ES6代码转译为ES5代码。等到主流浏览器完全实现ES6特性大概需要一年左右的时间,若想一睹各代理对于ES6特性的支持情况,我们推荐大家参考由 kangax 维护的 ECMAScript Compatibility Table 。
ECMAScript 2016的制定工作已经启动,许多 草案 已被提交到委员会,包括以下这些:异步方法、定型对象、并行JavaScript、类修饰符以及observables。虽然委员会正在积极评估这些特性,但我们无法预知它们的未来,其中一些会加入到下一版规范,另一些会加入未来的其它规范,剩下的将最终被遗弃。 TC39进程 解释了新特性从开始到最终被语言采用所经历的各种阶段。
2017年6月,ECMAScript发布第 8 个版本ES.Next,这个是不稳定版本。


二、ECMAScript 语法

熟悉 Java、C 和 Perl 这些语言的开发者会发现 ECMAScript 的语法很容易掌握,因为它借用了这些语言的语法。

Java 和 ECMAScript 有一些关键的语法特性相同,也有一些完全不同。


区分大小写

与 Java 一样,变量、函数名、运算符以及其他一切东西都是区分大小写的。

比如:

变量 test 与变量 TEST 是不同的。

变量是弱类型的

与 Java 和 C 不同,ECMAScript 中的变量无特定的类型,定义变量时只用 var 运算符,可以将它初始化为任意值。

因此,可以随时改变变量所存数据的类型(尽量避免这样做)。

例子

var color = "red";var num = 25;var visible = true;

每行结尾的分号可有可无

Java、C 和 Perl 都要求每行代码以分号(;)结束才符合语法。

ECMAScript 则允许开发者自行决定是否以分号结束一行代码。如果没有分号,ECMAScript 就把折行代码的结尾看做该语句的结尾(与 Visual Basic 和 VBScript 相似),前提是这样没有破坏代码的语义。

最好的代码编写习惯是总加入分号,因为没有分号,有些浏览器就不能正确运行,不过根据 ECMAScript 标准,下面两行代码都是正确的:

var test1 = "red"var test2 = "blue";

注释与 Java、C 和 PHP 语言的注释相同

ECMAScript 借用了这些语言的注释语法。

有两种类型的注释:

  • 单行注释以双斜杠开头(//)
  • 多行注释以单斜杠和星号开头(/),以星号和单斜杠结尾(/)
//this is a single-line comment/*this is a multi-line comment*/

括号表示代码块

从 Java 中借鉴的另一个概念是代码块。

代码块表示一系列应该按顺序执行的语句,这些语句被封装在左括号({)和右括号(})之间。

例如:

if (test1 == "red") {test1 = "blue";alert(test1);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/725256.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大唐杯学习笔记:Day6

1.1小区选择 一、概述 1.UE在RRC_IDLE和RRC——INACTIVATE状态下进行的过程; 2.UE首先需要完成PLMN的选择,在已选择的PLMN上寻找合适的小区,获取合适的服务,监听控制信道,这个过程即小区选择过程; 3.根据小区重选准则,UE寻找其他更适合的小区进行小区…

论文《Exploring CLIP for Assessing the Look and Feel of Images》阅读

论文《Exploring CLIP for Assessing the Look and Feel of Images》阅读 论文概述Preliminary方法论Experiments结论 论文概述 今天带来的是论文《Exploring CLIP for Assessing the Look and Feel of Images》,论文主要通过 CLIP 模型来完成图像的质量&#xff0…

js五星评价的制作方法

方法有两种&#xff0c;1、jquer插件&#xff1b;2、图片循环&#xff1b; 第一种、效果图 代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"…

装饰器模式详解

8.9.6 装饰器模式 ​ 装饰器模式是一种结构型模式&#xff0c;主要是给一个类添加更多功能&#xff1b; 示例代码&#xff1a; #include <iostream> #include <string>// 抽象基类&#xff1a;文本修饰器 class TextDecorator { public:virtual std::string dec…

软件中级设计师——计算机系统知识

前言 计算机系统知识点&#xff08;第一章&#xff09;。 文章目录 前言一、计算机系统1、CPU2、运算器3、控制器 一、计算机系统 1、CPU 主要由控制器和运算器组成&#xff1b; 控制器 功能 程序控制&#xff1b;操作控制&#xff1b;时间控制&#xff1b; 运算器 功能 数据…

自定义过滤器实现对请求报文统一解密对响应加密

工作中经常会遇到这样的情况,前端(Android或vue等)跟后台通讯时需要对报文做加密和签名处理,但是后端微服务之间调用是明文,这种情况可以考虑通过自定义过滤器的方式实现。 前端在请求头里增加特定字段表示是前端请求,报文是否需要加密,后端自定义过滤器获取请求时根据请…

一文了解 ArrayList 的扩容机制

了解 ArrayList 在 Java 中常用集合类之间的关系如下图所示&#xff1a; 从图中可以看出 ArrayList 是实现了 List 接口&#xff0c;并是一个可扩容数组&#xff08;动态数组&#xff09;&#xff0c;它的内部是基于数组实现的。它的源码定义如下&#xff1a; public class A…

通过hyperbeam创建梁单元截面属性

1、为模型中标准的圆柱形创建梁单元和赋予属性&#xff1b; 2、为模型中不标准的对称性实体创建梁单元和赋予属性&#xff1b; 3、为模型中壳体部分创建梁单元和赋予属性&#xff1b;

Linux系统之rename命令的基本使用

Linux系统之rename命令的基本使用 一、rename命令介绍二、raname工具版本2.1 C语言版本2.2 Perl版本 三、centos下的rename使用3.1 基本语法3.2 命令选项3.3 rename的基本使用 四、ubuntu下的rename使用4.1 基本语法4.2 命令选项4.3 rename命令的基本操作 五、rename注意事项 一…

“色狼”用英语怎么说?柯桥日常英语,成人英语口语学习

最近有粉丝问我"色狼"英文翻译是啥 首先声明不是"colour wolf"哈 关于“色狼”的英文表达有很多 快和C姐一起来看看吧&#xff01; 1.pervert 这个单词的意思是变态、色狼 是对性变态者最直观的描述 He is such a pervert&#xff01; I saw him lo…

【Java】Spring的ReflectionUtils类常用方法学习笔记

目录 ReflectionUtils介绍 常用方法 访问字段 方法调用 处理回调 示例 脑容量不够了&#xff0c;以简单的小知识作为一天的结尾吧(悲 ReflectionUtils介绍 ReflectionUtils是Spring Framework中非常实用的一个工具类&#xff0c;为开发人员提供了简便的反射操作方法&am…

三星Foundry决定对其第二代3纳米级别的制造技术SF3进行重新命名

三星Foundry被报道已决定对其第二代3纳米级别的制造技术SF3进行重新命名&#xff0c;将其改为2纳米级别的生产工艺SF2&#xff0c;这意味着相关的合同需要重写。据ZDNet报道&#xff0c;这次更名可能是三星为了简化工艺命名&#xff0c;并试图在视觉上更好地与英特尔Foundry竞争…

学习基于 JavaScript 语言 的计算机界三大神书”之一 ——SICP

如何阅读“计算机界三大神书”之一 ——SICP 《计算机程序的构造和解释》&#xff08;Structure and Interpretation of Computer Programs&#xff0c;简记为SICP&#xff09;是MIT的基础课教材&#xff0c;出版后引起计算机教育界的广泛关注&#xff0c;对推动全世界大学计算…

Vue3组件通信之二_defineExpose编译器宏函数

Vue3组件通信之二_defineExpose编译器宏函数 文章目录 Vue3组件通信之二_defineExpose编译器宏函数1. defineExpose2.简单理解3. 实战案例1. 父子组件之间通信1. 子组件中通过defineExpose暴露属性或方法2. 父组件中使用子组件暴露的方法 2. 同级(兄弟)组件之间方法调用或传值1…

【算法可视化】模拟算法专题

运行平台 Algorithm Visualizer 神奇的幻方 [NOIP2015 提高组] 神奇的幻方 // import visualization libraries { const { Tracer, Array2DTracer, Array1DTracer, LogTracer, Randomize, Layout, VerticalLayout } require(algorithm-visualizer); // } function filledA…

微前端之什么是微前端

什么是微前端 微前端分类 基于路由的微前端&#xff1a;组件化微前端&#xff1a;iframe嵌入式微前端&#xff1a; 优点缺点 动态加载/懒加载微前端&#xff1a;微应用容器化方案&#xff1a; 微前端解决方案 single-spa阿里巴巴 Cloud Alfaiframe 方案Web ComponentsModule Fe…

关于Mybatis-Plus报错 Not Found TableInfoCache 解决办法

0. 接口结构&#xff1a;1. 方法报错&#xff1a;2. 解决方法&#xff1a;3. 原因分析&#xff1a; 0. 接口结构&#xff1a; 【接口】&#xff1a; public interface PurchaseOrderService extends IService<PurchaseOrder> {}【接口实现类】&#xff1a; public cla…

【Python】新手入门(5):# -*- coding: UTF-8 -*- 的作用详解

【Python】新手入门&#xff08;5&#xff09;&#xff1a;# -*- coding: UTF-8 -*- 的作用详解 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础…

spring ResponseBodyAdvice 失效 不起作用

## spring web ResponseBodyAdvice 当 请求 controller 的RequestMapping void 方法时&#xff0c; 如果方法参数包含HttpServletResponse参数就会失效。 解决方法&#xff1a; 一、去掉HttpServletResponse参数 二、把void 改成对象&#xff0c;然后使用return 手动返回值。

ssm基于javaEE+springboot校园闲置二手物品拍卖交易平台_ngad7

为提升浏览用户观感及使用体验&#xff0c;本系统要具有易用性和美观性。通过页面的简单提示就可完成操作&#xff0c;校园闲置物品交易平台展示界面应该清楚简洁&#xff0c;使用户通过美观的前台页面能快速定位想要浏览的校园闲置物品交易平台信息。后台界面也应简约&#xf…