【JavaScript 01】说在前面 脚本语言 嵌入式语言 面向对象 函数式编程 语法构造 标准库 API 浏览器 Node 移动平台 跨平台 编译运行 事件驱动与非阻塞式设计 开放

本文介绍了JavaScript作为一种轻量级脚本语言,广泛应用于浏览器和服务器环境,如Node.js。JS具有灵活的语法,支持多种编程范式,包括浏览器和服务器的API。它的性能通过编译运行和事件驱动设计得以提升,同时JS标准(ECMA-262)是开放且不断进化的。文章强调了JS的开放性和在不同平台上的广泛应用,包括桌面应用、移动开发和数据库操作。
摘要由CSDN通过智能技术生成

说在前面

CSS的回顾已经接近尾声,这意味着JS的回顾即将开始,接下来就由Luffy带领我们一同参照WangDoc.com的互联网那个文档内容进行JavaScript核心语法(ES5 and DOM)的复习与总结啦!

What is JS?

JavaScript 是一种轻量级的脚本语言,之所以叫做脚本语言(script language),是因为不具备开发操作系统的能力,只是用来编写控制其他大型应用程序如浏览器的脚本

JS同时也是一种嵌入式语言(embedded language),本身只能提供一些数学和逻辑运算,因此其本身的核心语法并不多。同时JS本身不提供任何与I/O有关的API,这些都需要宿主环境(host)提供,因此JS只适合于嵌入到更加大型的应用程序环境中从而去调用宿主环境(host)提供的底层API。目前JS的host有多种,常见的环境是浏览器以及服务器环境(Node项目)

从语法的角度看,JS是一种"对象模型"语言,宿主环境通过模型来描述自己的功能和操作接口,进一步通过JS来控制这些功能。但JS并不是纯粹的"面向对象",还支持其他编程范式如函数式编程,这意味着几乎所有问题JS都可以有多种方式解决,体现了JS的灵活性

JS的核心语法非常精简,只包含基本的语法构造(操作符,控制结构,语句)和标准库(一系列具有各种功能的对象如Array,Date,Math等)
除了核心语法便是各种宿主环境(host)提供的额外API(限于host的接口)让JS调用

如浏览器所提供的API可以分为三类:

  1. 浏览器控制类(操作浏览器)
  2. DOM类(操作网页元素)
  3. Web类(实现互联网功能)

而服务器则会提供操作系统的API,如文件操作API,网络通信API等等,之后学习Node可以在Node环境中找到

JS的优势

JS是目前唯一通用的浏览器脚本语言,让网页能够呈现出各种特殊效果从而为用户提供良好的交互体验

广泛的使用领域

JS的使用范围也在向着通用系统语言的方向发展

1 浏览器平台化
随着HTML5的出现浏览器本身的功能不再局限于浏览网页,而是更加平台化,JS可以调用更多的系统功能,如操作本地文件,操作图片,调用摄像头与麦克风等

2 Node
Node 项目让JS可以用于开发大型的服务器端项目,网站的前后端都可以使用JS开发
Raspberry Pi等嵌入式平台也能够安装Node,意味着JS能够为这些平台开发应用程序

3 数据库操作
NoSQL数据库的概念在JSON(JavaScript Object Notation)格式的基础上诞生
大部分的NoSQL数据库允许JS的直接操作
而基于SQL语言的开源关系型数据库PostgreSQL支持JS作为操作语言并部分取代SQL

4 移动平台开发
React Native项目将JS写的组件编译成为原生组件从而让其具备优秀性能

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 等多个桌面平台的程序而不依赖于浏览器

Any application that can be written in JavaScript will eventually be written in JavaScript.
– Jeff Atwood

相对精简但性能强大

1 环境
只要有浏览器便可运行JS程序
只要有文本编辑器便可编写JS程序
几乎所有电脑都原生提供学习环境,不依赖复杂的IDE和编译器

2 简易
相对于Python or Ruby等其他脚本语言,JS的语法更加简易
简单的命令完成复杂的操作

3 相似
JS语法类似于C/C++以及Java等常见语言

JS的复杂性在于两个方面
1是涉及大量的外部API,JS的强大在于同其他组件配合,而外部组件数量多,涉及网络应用的方方面面
2是JS本身具有设计缺陷和怪异之处,合理编写JS程序需要注意陷阱,这也是TS等新语言发明的主导因素

JS的性能优势主要在于:
1 灵活语法,表达力强
JS支持类似C语言的清晰过程式编程,同时也支持灵活的函数式编程,可以写并发处理(concurrent)
这些语法特性非常强大,可以用于多种场合,尤其是异步编程

JS的所有值都为对象,可以方便地按照需要随时创造数据结构而不用进行麻烦的预定义,非常灵活便利
同时JS的标准还在快速进化并合理化,语法特性也将更加完善强大

2 支持编译运行
JS语言本身是解释性的,但是在现代浏览器中JS都是编译后运行
程序得到高度优化,运行效率接近二进制程序,同时JS引擎也正在快速进化,性能将会更强

此外的WebAssembly格式是JS引擎的中间码格式,都为二进制代码
由于跳过编译步骤,速度接近原生二进制代码
C和C++通过编译为WebAssembly格式便可以在浏览器中运行

3 事件驱动与非阻塞式设计
JavaScript 程序可以采用事件驱动(event-driven)和非阻塞式(non-blocking)设计,在服务器端适合高并发环境,普通的硬件就可以承受很大的访问量

开放

JS的标准ECMA-262是ISO国际标准,非常详细明确
标准的主要实现如V8和SpiderMonkey引擎都是开放的且质量很高

实验环境推荐使用Chrome浏览器,其开发者工具(Developer Tools)中的控制台(console)便是运行JS代码的理想环境

进入Chrome控制台有两种方式:

  1. Ctrl + Shift + J直接进入
  2. F12进入开发者工具后选择console面板

进入控制台以后,就可以在提示符后输入代码,然后按Enter键,代码就会执行
如果按Shift + Enter键,就是代码换行,不会触发执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zanebla

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值