JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。
JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。
JavaScript的标准是ECMAScript 。截至 2012 年,所有浏览器都完整的支持ECMAScript 5.1,旧版本的浏览器至少支持ECMAScript 3 标准。2015年6月17日,ECMA国际组织发布了ECMAScript的第六版,该版本正式名称为 ECMAScript 2015,但通常被称为ECMAScript 6 或者ES2015。
主要功能
-
嵌入动态文本于HTML页面。
-
对浏览器事件做出响应。
-
读写HTML元素。
-
在数据被提交到服务器之前验证数据。
-
检测访客的浏览器信息。 控制cookies,包括创建和修改等。
-
基于Node.js技术进行服务器端编程。
在 HTML 文档中嵌入 JavaScript 代码
在 HTML 页面中嵌入 JavaScript 脚本需要使用 <script> 标签,用户可以在 <script> 标签中直接编写 JavaScript 代码,具体步骤如下。
第1步,新建 HTML 文档,保存为 test.html。
第2步,在 <head> 标签内插入一个 <script> 标签。
第3步,为 <script> 标签设置type="text/javascript"
属性。现代浏览器默认 <script> 标签的脚本类型为 JavaScript,因此可以省略 type 属性;如果考虑到兼容早期版本浏览器,则需要设置 type 属性。
第4步,在 <script> 标签内输入 JavaScript 代码
document.write("<h1>hello</h1>");
。<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>第一个JavaScript程序</title> <script type="text/javascript"> document.write("<h1>hello</h1>"); </script> </head> <body></body> </html>
在 JavaScript 脚本中,document 表示网页文档对象;document.write() 表示调用 Document 对象的 write() 方法,在当前网页源代码中写入 HTML 字符串
"<h1>hello</h1>"
。
第5步,保存网页文档,在浏览器中预览.
语言组成
ECMAScript,描述了该语言的语法和基本对象。
文档对象模型(DOM),描述处理网页内容的方法和接口。
浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。
运行模式
JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。 [6]
-
是一种解释性脚本语言(代码不进行预编译)。 [7]
-
跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。
-
JavaScript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。JavaScript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。
推荐一个:
w3school 在线教程全球最大的中文 Web 技术教程。https://www.w3school.com.cn/
语言特点
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()中会传入错误信息。
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
WEB技术
HTML |
|
---|
XML |
|
---|
Web脚本 |
|
---|
Serv脚本 |
|
---|
.NET |
|
---|
多媒体 |
|
---|
网页技术与标准
文档呈现语言 |
|
---|
样式格式描述语言 |
|
---|
动态网页技术 |
|
---|
客户端交互技术 |
|
---|
客户端脚本语言 |
|
---|
标识定位语言 |
|
---|
文档纲要语言 |
|
---|
参考资料
- 1 JavaScript资源 .Mozilla官网.2018-6-20[引用日期2019-11-20]
- 2 Mozilla任命JavaScript发明人Brendan Eich为新任CEO .CSDN[引用日期2014-07-29]
- 3 Firefox中的JavaScript 更新日志 .Mozilla官网.2019-5-20[引用日期2019-11-20]
- 4 JavaScript 版本 .W3School.2020-01-05[引用日期2020-12-23]
- 5 JS学习之三(JavaScript组成部分【学识补充】) .希赛网[引用日期2014-07-29]
- 6 徐青. JavaScript恶意代码检测技术研究[D]. 西南交通大学 2014
- 7 JavaScript .红黑联盟[引用日期2014-07-29]
- 8 基于对象的js语言 .豆丁网[引用日期2014-11-28]
- 9 javascript .JquerySchool[引用日期2014-07-29]
- 10 JavaScript入门必读 .天极网[引用日期2014-07-29]
- 11 JavaScript 概述 - JavaScript | MDN .Mozilla官方.2020-01-05[引用日期2021-02-23]
- 12 ECMA-262 - Ecma International .Ecma International.2021-06-13[引用日期2021-07-23]
- 13 WebStorm 2021.3 最新变化 .JET BRAINS[引用日期2022-03-18]