什么是JavaScript?
JavaScript
是一种直译式
脚本语言,一种轻量级
的脚本语言
。
什么是脚本语言?
Script language
指的是它不具备开发操作系统的能力,而是只用来编写控制其他程序的语言
。
JavaScript
是一种嵌入式(embedded)
语言。它本身提供的核心语法并不是很多,更多的功能需要依靠宿主环境(host)
提供。So,这门语言适合嵌入更大型的应用程序环境中,去调用宿主环境提供的底层API
。
目前常见的JavaScript
宿主环境有浏览器
和服务器环境Node
。
如果从语法
的层面来看,JavaScript
是一门对象模型语言
。各种宿主环境通过这个模型,描述自己的功能和操作接口,从而通过JavaScript
控制这些功能。
同时,JavaScript
还支持函数式编程
。所以在学习的过程中,我们需要更多的去了解和学习一些不同解决问题的方法。
JavaScript
的核心语法部分包括基本语法构造
和标准库
,当然如果学习这门语言还需要学习不同的宿主环境
提供的一些其他API
[这种API通常情况下只能在该宿主环境下使用],从而在需要的时候方便调用。
例如经常涉及的宿主环境浏览器
,它提供的额外的API
可以分成三大类:
- 浏览器控制类:操作浏览器
- DOM类: 操作网页的各种元素
- Web类: 实现互联网的各种功能
而如果你的宿主环境
是Node
这种服务器环境
,那么就会提供各种操作系统的API
,例如文件操作API
、网络通信相关的API
等等。
JavaScript的发展
为什么选择学习JavaScript
- 对浏览器的操作能力
- 更多的应用领域
- 对初学者更加的友好
- 日益强大的性能
对浏览器的操作能力:
JavaScript
诞生之初,就是为了作为浏览器内置脚本语言
,让前端开发者能够操作浏览器。虽然在之前出现过很多类似的脚本语言,但是目前来讲,JavaScript
是唯一的一种通用的浏览器脚本语言,所有的浏览器都支持。
开发者通过JavaScript
可以让网页实现更多的展示效果,创造更好的用户体验。
更多的应用领域:
随着近些年的发展,
JavaScript
这门语言从最开始的只能使用在浏览器
,渐渐的扩散到了服务端
。
1、浏览器的平台化
随着 HTML5
的出现,浏览器本身的功能越来越强,不再仅仅能浏览网页,而是越来越像一个平台,JavaScript
因此得以调用许多系统功能,比如操作本地文件、操作图片、调用摄像头和麦克风等等。这使得 JavaScript
可以完成许多以前无法想象的事情。
2、Node
Node
项目使得 JavaScript
可以用于开发服务器端的大型项目,网站的前后端都用 JavaScript
开发已经成为了现实。有些嵌入式平台(Raspberry Pi
)能够安装 Node
,于是 JavaScript
就能为这些平台开发应用程序。
3、数据库操作
JavaScript
甚至也可以用来操作数据库。NoSQL
数据库这个概念,本身就是在 JSON(JavaScript Object Notation)
格式的基础上诞生的,大部分 NoSQL
数据库允许 JavaScript
直接操作。基于SQL
语言的开源数据库 PostgreSQL
支持 JavaScript
作为操作语言,可以部分取代 SQL
查询语言。
4、移动平台开发
JavaScript
也正在成为手机应用的开发语言。一般来说,安卓平台使用 Java
语言开发,iOS
平台使用 Objective-C
或 Swift
语言开发。许多人正在努力,让 JavaScript
成为各个平台的通用开发语言。
PhoneGap
项目就是将 JavaScript
和 HTML5
打包在一个容器之中,使得它能同时在 iOS
和安卓上运行。Facebook
公司的 React Native
项目则是将 JavaScript
写的组件,编译成原生组件,从而使它们具备优秀的性能。
Mozilla
基金会的手机操作系统 Firefox OS
,更是直接将 JavaScript
作为操作系统的平台语言,但是很可惜这个项目没有成功。
5、内嵌脚本语言
越来越多的应用程序,将 JavaScript
作为内嵌的脚本语言,比如 Adobe
公司的著名 PDF 阅读器
Acrobat
、Linux 桌面环境 GNOME 3
。
6、跨平台的桌面应用程序
Chromium OS
、Windows 8
等操作系统直接支持 JavaScript
编写应用程序。Mozilla
的 Open Web Apps
项目、Google
的 Chrome App 项目、GitHub
的 Electron 项目、以及 TideSDK 项目,都可以用来编写运行于 Windows
、Mac OS
和 Android
等多个桌面平台的程序,不依赖浏览器。
著名程序员 Jeff Atwood 甚至提出了一条 “Atwood 定律”:
“所有可以用 JavaScript 编写的程序,最终都会出现 JavaScript 的版本。”(Any application that can be written in JavaScript will eventually be written in JavaScript.)
对初学者更加的友好:
1、可以随时随地的使用浏览器进行开发练习。
2、简单化的语法。即使复杂的语法你没有掌握,也可以通过简单的语法实现。
3、与C/C++
、Java
的相似性。如果你学过这两门语言,那么再来学习JavaScript
可以说将会很简单。
日益强大的性能:
1、灵活的语法。
JavaScript
既支持类似C
语言清晰的过程式编程,也支持灵活的函数式编程
,可以用来写并发处理(concurrent)
。这些语法特性已经被证明非常强大,可以用于许多场合,尤其适用异步编程
。
JavaScript
的所有值都是对象,这为程序员提供了灵活性和便利性。因为你可以很方便地、按照需要随时创造数据结构,不用进行麻烦的预定义。
JavaScript
的标准还在快速进化中,并不断合理化,添加更适用的语法特性。
2、支持编译运行
JavaScript
语言本身,虽然是一种解释型语言
,但是在现代浏览器中,JavaScript
都是编译后运行。程序会被高度优化,运行效率接近二进制程序。而且,JavaScript
引擎正在快速发展,性能将越来越好。
此外,还有一种 WebAssembly
格式,它是 JavaScript
引擎的中间码格式,全部都是二进制代码。由于跳过了编译步骤,可以达到接近原生二进制代码的运行速度。各种语言(主要是 C
和 C++
)通过编译成 WebAssembly
,就可以在浏览器里面运行。
3、事件驱动和非阻塞设计
JavaScript
程序可以采用事件驱动(event-driven
)和非阻塞式(non-blocking
)设计,在服务器端适合高并发环境,普通的硬件就可以承受很大的访问量。
JavaScript和H5
JavaScript
这门语言,本身是一门用来在浏览器当中做交互效果的脚本语言
。虽然现在跟当年的环境发生了极大的变化,但是这项功能仍然还保留在JavaScript
的身体里。
而H5
如果从狭义的角度讲,可以解释为html的第五代产品
,html
主要负责页面的结构,而JavaScript
则需要和html
相互配合,负责页面的交互效果。
如果从广义的角度来说,可以解释为新一代的富客户端解决方案
,而对于这种开发需求,JavaScript
更是一个好的伙伴。
同时,如果单纯的从语言本身来看,大家所说的H5
开发,大概可以约等于Html+Css+JavaScript
。
如果从技术层面看,到了H5
的年代,提供给了JavaScript
更多的API
,让开发变得更加灵活。
来源:oschina
链接:https://my.oschina.net/u/4317706/blog/3561480