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