播报失败是正常现象
由于mac pro出现错误,目录暂时无法使用
JavaScript
JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。 [1]
JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。 [2]
JavaScript的标准是ECMAScript 。截至 2012 年,所有浏览器都完整的支持ECMAScript 5.1,旧版本的浏览器至少支持ECMAScript 3 标准。2015年6月17日,ECMA国际组织发布了ECMAScript的第六版,该版本正式名称为 ECMAScript 2015,但通常被称为ECMAScript 6 或者ES2015。 [1]
百科星图
共20个词条 28.3万阅读
共10个词条 1.5万阅读
软件名称
JavaScript
软件平台
Chrome、IE、Safari、Opera、Firefox、Edge等 [3]
上线时间
1995年 [4]
最近更新时间
2021年6月 [12]
软件语言
JavaScript
开发商
Netscape、Mozilla基金会
软件授权
MIT License
软件版本
ECMAScript 2021 [12]
目录
1 产生背景
2 主要功能
3 语言组成
4 运行模式
5 语言特点
6 编译模式
7 语言标准
8 版本记录
产生背景
编辑 播报
javascript组成
JavaScript最初由Netscape的Brendan Eich设计,最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java,但JavaScript的主要设计原则源自Self和Scheme。JavaScript与Java名称上的近似,是当时Netscape为了营销考虑与Sun微系统达成协议的结果。微软同时期也推出了JScript来迎战JavaScript的脚本语言。
发展初期,JavaScript的标准并未确定,同期有Netscape的JavaScript,微软的JScript和CEnvi的ScriptEase三足鼎立。为了互用性,Ecma国际(前身为欧洲计算机制造商协会)创建了ECMA-262标准(ECMAScript),两者都属于ECMAScript的实现,尽管JavaScript作为给非程序人员的脚本语言,而非作为给程序人员的脚本语言来推广和宣传,但是JavaScript具有非常丰富的特性。 [10] 1997年,在ECMA(欧洲计算机制造商协会)的协调下,由Netscape、Sun、微软、Borland组成的工作组确定统一标准:ECMA-262。完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,浏览器对象模型。 [9]
JavaScript是甲骨文公司的注册商标。Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程(Node.js)。
主要功能
编辑 播报
嵌入动态文本于HTML页面。 [7]
对浏览器事件做出响应。 [7]
读写HTML元素。 [7]
在数据被提交到服务器之前验证数据。 [7]
检测访客的浏览器信息。 [7] 控制cookies,包括创建和修改等。 [7]
基于Node.js技术进行服务器端编程。 [8]
语言组成
编辑 播报
ECMAScript,描述了该语言的语法和基本对象。 [5]
文档对象模型(DOM),描述处理网页内容的方法和接口。 [5]
浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。 [5]
运行模式
编辑 播报
JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。 [6]
是一种解释性脚本语言(代码不进行预编译)。 [7]
主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。 [7]
可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。 [7]
跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。
JavaScript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。JavaScript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。
语言特点
编辑 播报
JavaScript脚本语言具有以下特点:
(1)脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。
(2)基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。
(3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。
(4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应。
(5)跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提是机器上的浏览器支 持JavaScript脚本语言,JavaScript已被大多数的浏览器所支持。 [6] 不同于服务器端脚本语言,例如PHP与ASP,JavaScript主要被作为客户端脚本语言在用户的浏览器上运行,不需要服务器的支持。所以在早期程序员比较倾向于使用JavaScript以减少对服务器的负担,而与此同时也带来另一个问题,安全性。
而随着服务器的强壮,虽然程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。同时,有些特殊功能(如AJAX)必须依赖JavaScript在客户端进行支持。
编译模式
编辑 播报
JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。直译语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而其解决办法就是于使用try{}catch(){},其中,catch()中会传入错误信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
console.log("a");//这是正确的 console.log("b");//这是正确的 console.logg("c");//这是错误的,并且到这里会停下来 console.log("d");//这是正确的 console.log("e");//这是正确的
/*解决办法*/ try{console.log("a");}catch(e){}//这是正确的 try{console.log("b");}catch(e){}//这是正确的 try{console.logg("c");}catch(e){}//这是错误的,但是到这里不会停下来,而是跳过 try{console.log("d");}catch(e){}//这是正确的 try{console.log("e");}catch(e){}//这是正确的
|
JavaScript被归类为直译语言,因为主流的引擎都是每次运行时加载代码并解译。V8是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey会将解译过的指令暂存,以提高性能,称为实时编译),但由于V8的核心部分多数用JavaScript撰写(而SpiderMonkey是用C++),因此在不同的测试上,两者性能互有优劣。与其相对应的是编译语言,例如C语言,以编译语言编写的程序在运行之前,必须经过编译,将代码编译为机器码,再加以运行。
注释://被称作行注释,/* */中的内容会被注释。
语言标准
编辑 播报
JavaScript已经被Netscape公司提交给ECMA制定为标准,称之为ECMAScript,标准编号ECMA-262。最新版为ECMAScript 6。符合ECMA-262 3rd Edition标准的实现有:
Microsoft公司的JScript.
Mozilla的JavaScript-C(C语言实现),现名SpiderMonkey
Mozilla的Rhino(Java实现)
Digital Mars公司的DMDScript
Google公司的V8
版本记录
编辑 播报
JavaScript版本
版本 |
发布日期 |
基于 |
Netscape Navigator |
Mozilla Firefox |
Internet Explorer |
Opera |
Safari |
Google Chrome |
1.0 |
1996年3月 |
- |
2.0 |
- |
- |
- |
- |
- |
1.1 |
1996年8月 |
- |
3.0 |
- |
3.0 |
- |
- |
- |
1.2 |
1997年6月 |
- |
4.0-4.05 |
- |
- |
- |
- |
- |
1.3 |
1998年10月 |
ECMA-262 1 edition / ECMA-262 2 edition |
4.06-4.7x |
- |
4.0 |
- |
- |
- |
1.4 |
- |
- |
Netscape Server |
- |
- |
- |
- |
- |
1.5 |
2000年11月 |
ECMA-262 3 edition |
6.0 |
1.0 |
5.5 (JScript 5.5), 6 (JScript 5.6), 7 (JScript 5.7), 8 (JScript 6) |
6.0, 7.0, 8.0, 9.0 |
- |
- |
1.6 |
2005年11月 |
1.5 + Array extras + Array and String generics + E4X |
- |
1.5 |
- |
- |
3.0, 3.1 |
- |
1.7 |
2006年10月 |
1.6 + Pythonic generators + Iterators + let |
- |
2.0 |
- |
- |
3.2, 4.0 |
1.0 |
1.8 |
2008年6月 |
1.7 + Generator expressions + Expression closures |
- |
3.0 |
- |
11.50 |
- |
- |
1.8.1 |
- |
1.8 + Native JSON support + Minor Updates |
- |
3.5 |
- |
- |
- |
- |
1.8.2 |
2009年6月22日 |
1.8.1 + Minor updates |
- |
3.6 |
- |
- |
- |
- |
1.8.5 [11] |
2010年7月27日 |
1.8.1 + ECMAScript 5 Compliance |
- |
4 |
9 |
11.60 |
- |
- |
ES2015 |
2015年 |
ECMAScript 2015 |
- |
- |
- |
- |
- |
- |
ECMAScript版本
版本 |
说明 |
实现 |
ECMAScript 1 |
标准化了JavaScript1.1的基本特性,并添加了一些新特性。没有标准化switch语句和正则表达式。 |
由Netscape 4.5和IE 4实现。 |
ECMAScript 2 |
ECMA v1的维护版本,只添加了说明 |
由Netscape 4.5和IE 4实现。 |
ECMAScript 3 |
标准化了switch语句、异常处理和正则表达式。 |
由Mozilla、Netscape 6和IE 5.5实现。 |
ECMAScript 5 |
添加了“严格模式”。添加了 JSON 支持。添加了 String.trim()。添加了 Array.isArray()。添加了数组迭代方法。 |
- |
ECMAScript 5.1 |
编辑改变 |
- |
ECMAScript 2015 |
添加了 let 和 const添加了默认参数值添加了 Array.find()添加了 Array.findIndex() [4] |
- |
ECMAScript 2016 |
添加了指数运算符(**)。添加了 Array.prototype.includes [4] |
- |
ECMAScript 2017 |
添加了字符串填充。添加了新的 Object 属性。添加了异步功能。添加了共享内存。 [4] |
- |
ECMAScript 2018 |
添加了 rest / spread 属性。添加了异步迭代。添加了 Promise.finally()。增加 RegExp。 [4] |
- |
typescript
计算机编程语言
TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行在任何浏览器,任何操作系统。 [1]
TypeScript添加了很多尚未正式发布的ECMAScript新特性(如装饰器 [2] )。2012年10月,微软发布了首个公开版本的TypeScript,2013年6月19日,在经历了一个预览版之后微软正式发布了正式版TypeScript。当前最新版本为TypeScript 4.9。 [3] [18]
软件名称
TypeScript
软件平台
Chrome、IE、Safari、Firefox、Edge等
上线时间
2012年10月
最近更新时间
2022年11月15日
软件语言
TypeScript
开发商
Microsoft [1]
软件授权
Microsoft [1]
软件版本
4.9 [18]
产生背景
编辑 播报
TypeScript 起源于使用JavaScript开发的大型项目 。由于JavaScript语言本身的局限性,难以胜任大型项目的开发和维护。因此微软开发了TypeScript ,使得其能够胜任大型项目的开发。
主要功能
编辑 播报
TypeScript的作者是安德斯·海尔斯伯格,C#的首席架构师。 [4] 它是开源和跨平台的编程语言。它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。 [4-7]
TypeScript扩展了JavaScript的语法,所以任何现有的JavaScript程序可以运行在TypeScript环境中。TypeScript是为大型应用的开发而设计,并且可以编译为JavaScript。 [8]
TypeScript 支持为已存在的 JavaScript 库添加类型信息的头文件,扩展了它对于流行库的支持,如 jQuery,MongoDB,Node.js 和 D3.js 等。这些第三方库的类型定义本身也是开源的,所有开发者都能参与贡献。 [9]
主要特性
编辑 播报
TypeScript 是一种给 JavaScript 添加特性的语言扩展。
●类
●接口
●模块 [10]
●装饰器 [11]
语法上,TypeScript 很类似于 JScript .NET,另外一个添加了对静态类型,经典的面向对象语言特性如类,继承,接口和命名空间等的支持的 Microsoft 对 ECMAScript 语言标准的实现。
类型批注
TypeScript 通过类型批注提供静态类型以在编译时启动类型检查。这是可选的,而且可以被忽略而使用 JavaScript 常规的动态类型。
TypeScript 代码案例:Add 函数
对于基本类型的批注是 number, bool 和 string。而弱或动态类型的结构则是 any 类型。
类型批注可以被导出到一个单独的声明文件以让使用类型的已被编译为 JavaScript 的 TypeScript 脚本的类型信息可用。批注可以为一个现有的 JavaScript 库声明,就像已经为 Node.js 和 jQuery 所做的那样。
当类型没有给出时,TypeScript 编译器利用类型推断以推断类型。如果由于缺乏声明,没有类型可以被推断出,那么它就会默认为是动态的 any 类型。
声明文件
当一个 TypeScript 脚本被编译时,有一个产生作为编译后的 JavaScript 的组件的一个接口而起作用的声明文件 (具有扩展名 .d.ts) 的选项。在这个过程中编译器基本上带走所有的函数和方法体而仅保留所导出类型的批注。当第三方开发者从 TypeScript 中使用它时,由此产生的声明文件就可以被用于描述一个