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);

}

如果你喜欢博主写的文章,可以关注 Python老吕的CSDN博客 ,近距离交流各种网络技术。
博主ID:Python老吕,希望大家点赞、评论、收藏。


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

西门子Mendix低代码资深技术顾问张戟,将出席“ISIG-低代码/零代码技术与应用发展峰会”

3月16日,第四届「ISIG中国产业智能大会」将在上海中庚聚龙酒店拉开序幕。本届大会由苏州市金融科技协会指导,企智未来科技(LowCode低码时代、RPA中国、AIGC开放社区)主办。大会旨在聚合每一位产业成员的力量,深入探索低…

【操作系统概念】 第7章:死锁

文章目录 0.前言7.1 系统模型7.2 死锁特征7.2.1 必要条件7.2.2 资源分配图 7.3 死锁处理方法7.4 死锁预防(deadlock prevention)7.4.1 互斥7.4.2 占有并等待7.4.3 非抢占7.4.4 循环等待 7.5 死锁避免(deadlock-avoidance)7.5.1 安…

NetSuite Mass Update 批量更新功能

NetSuite中有一个小而精的便捷功能,但是也是一个很容易在实践中被大家遗忘的隐藏功能,就是Mass Update批量更新,在此想和各位分享一下~该功能主要是可以帮助用户快速将符合固定标准的记录中的单个/多个字段直接进行批量更新。如果…

深度神经网络 基本知识 记录

资料:https://www.bilibili.com/video/BV1K94y1Z7wn/?spm_id_from333.337.search-card.all.click&vd_source14a476de9132ba6b2c3cbc2221750b99 计划:3~4天 注:网课讲的内容比较糅杂,记录的内容可能会出现重复 杂 人工智能…

vue3基础教程(3)——引入ui框架iview(viewui)

博主个人微信小程序已经上线:【中二少年工具箱】。欢迎搜索试用 正文开始 专栏简介1. 下载iview2.更新资源3.引入插件4.运行项目 专栏简介 本系列文章由浅入深,从基础知识到实战开发,非常适合入门同学。 零基础读者也能成功由本系列文章入门…

HTML开发工具和环境介绍,内附超详细的VS code安装教程!

工欲善其事必先利其器,一款好的开发工具可以让我们事半功倍。前面我们对HTML的相关概念和基本结构已经有了基本的了解,下面我们就来安装在前端开发中的需要使用的开发工具及环境。 在众多HTML编辑器中,选择一个适合自己的工具至关重要。今天…

实现的一个网页版的简易表白墙

实现的一个网页版的表白墙 实现效果 代码截图 相关代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><tit…

计算机网络-网络应用服务器(二)

目录 1.虚拟机VM简介&#xff1a; 2.虚拟机VM几个注意事项&#xff1a; 3.Web服务器网站配置&#xff1a; 4.FTP服务器选项设置&#xff1a; 5.隔离的FTP服务器安装设置&#xff1a; 6.Apache服务器&#xff1a; 7.httpd.conf主配置文件部分内容&#xff1a; 8.虚拟主机&a…

zipkin Access denied for user ‘xxx‘@‘xxx‘ (using password: NO)

Access denied : 拒绝访问 解决方案&#xff1a; 授权 登录mysql 之后执行命令 step 1 mysql -u username -p // username: 替换成你sql 用户名step2 授权 alter user usernameip identified with mysql_native_password by password // step 3 刷新 flush privileges;

好物周刊#44:现代终端工具

https://github.com/cunyu1943 村雨遥的好物周刊&#xff0c;记录每周看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;每周五发布。 一、项目 1. Github-Hosts 通过修改 Hosts 解决国内 Github 经常抽风访问不到&#xff0c;每日更新。 2. 餐饮点餐商城 针对…

受投资人青睐,易鑫租赁深交所再发8.10亿ABS,利率再创新低

近日&#xff0c;上海易鑫融资租赁有限公司&#xff08;以下简称“易鑫租赁”&#xff09;成功发行“天风-易鑫租赁惠民4期资产支持专项计划”&#xff0c;募集资金8.10亿元&#xff08;人民币&#xff0c;下同&#xff09;。此次发行利率再创易鑫ABS历史新低。 2023年1月&…

爬虫(四)

1.图片验证码 import requestsres requests.get(https://www.gushiwen.cn/RandCode.ashx)with open("code.png", "wb") as f:f.write(res.content)2.打码平台 网址&#xff1a;http://www.ttshitu.com/&#xff0c;找到开发文档点击Python,没有钱了要用我…

请说明Vue中的插槽复用

在前端开发中&#xff0c;Vue是一款广泛应用的JavaScript框架&#xff0c;它提供了丰富的功能和灵活性&#xff0c;使得开发者可以轻松构建交互性强大的Web应用程序。Vue中的插槽&#xff08;slot&#xff09;是一项非常有用的功能&#xff0c;能够帮助我们实现组件的复用&…

【重要!!退税!退税!】一年一度个人所得税综合年度汇算开始了!

目录标题 如何退税&#xff1f;2023年度个人所得税综合所得汇算清缴操作指南汇算准备标准申报 退税骗局&#xff1f;1.“您有一笔退税待领取”骗局2.“专业人员帮你多退税”骗局3.“诱导填报虚假个税信息”骗局4.“税务稽查人员联系你”骗局 如何退税&#xff1f; 2023年度个人…

onnx模型优化利器onnxoptimizer、onnxsim

ONNX性能优化和调试技巧 - 知乎ONNX模型是一种跨平台、跨框架的模型表示格式,允许用户在不同的深度学习框架之间共享模型和数据,从而加速模型开发和部署。然而,在实际应用中,我们通常需要对ONNX模型进行性能优化和调试,以确保其在不同硬件和…https://zhuanlan.zhihu.com/…

EXTI外部中断以及示例

中断系统 中断&#xff1a;在主程序运行过程中&#xff0c;出现了特定的中断触发条件&#xff08;中断源。比如对于外部中断来说&#xff0c;可以是引脚发生了电平跳变&#xff1b;对于定时器来说&#xff0c;可以是定时的时间到了&#xff1b;对于串口通信来说&#xff0c;可…

第一套试卷大题

1.邻接矩阵和邻接表的写法&#xff1a; **介绍&#xff1a;**该图是一个无向图&#xff0c;所以邻接矩阵一定是对称的&#xff0c;而邻接表某节点的边数为无向图某节点的连接数 无向图的邻接矩阵&#xff1a; 无向图的邻接表&#xff08;不唯一&#xff09;&#xff1a; 根据无…

细说券商VIP快速交易通道与交易所报单一文看懂

最近的行情渐入佳境&#xff0c;很多朋友都喜欢做短线或者打板交易。可以往往发现打板进去的要么就是量能不足没有封住的&#xff0c;或者说是炸板的&#xff0c;想要交易一字板又打板不进去&#xff0c;这种就很让人苦恼。今天我们就来解答下这种到底该怎么处理&#xff1f;首…

springboot233大学生就业需求分析系统

大学生就业需求分析系统设计与实现 摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff…

自动化测试之web自动化(Selenium)

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…