导论

一、 什么是 JavaScript 语言

  • 一种轻量级的脚本语言

    • 脚本语言:不具备开发操作系统的能力,而是只用来编写控制其他大型应用程序 如:浏览器 的 '脚本'

  • 一种嵌入式语言

    • 核心语法不多,只能用来做一些数学和逻辑运算

    • 本身不提供任何与 I/O 输入/输出 相关的 API

    • 都要靠宿主环境 host 提供,只适合嵌入更大型的应用程序环境,去调用宿主环境提供的底层 API

  • 一种“对象模型”语言 语法角度

    • 各种宿主环境通过这个模型,描述自己的功能和操作接口,从而通过 JavaScript 控制这些功能

    • 但又不是纯粹的 “面向对象语言”,还支持其他编程范式 如:函数式编程,这会导致任何一个问题,JavaScript 都有多种解决方案

  • 核心语法部分相当精简,只包括两部分:

    • 基本的语法构造:操作符、控制结构、语句

    • 标准库:一系列具有各种功能的对象,如:Array、Date、Math

    • 除此之外,就是可调用的宿主环境提供的 API

  • 浏览器提供的额外 API 可以分为三大类:

    • 浏览器控制类:操作浏览器

    • DOM 类:操作网页的各种元素

    • Web 类:实现互联网的各种功能

  • 服务端 node 宿主环境会提供各种操作系统的 API,如:文件操作 API、网络通信 API等

二、 JavaScript 的广泛使用

  • 浏览器的平台化

  • 服务端 Node Deno

  • 数据库操作 基于 JSON 的 NoSQL

  • 移动平台开发 React Native

  • 内嵌脚本语言

  • 跨平台的桌面应用程序

  • Atwood 定律:Any application that can be written in JavaScript will eventually be written in JavaScript

三、 JavaScript 的强大性能

  • 语法灵活,表达力强

    • 支持类似 C语言 清晰的过程式编程,也支持灵活的函数式编程,可以用来写并发处理 concurrent,尤其适用异步编程

    • JavaScript 的所有值都是对象,不需要麻烦的预定义

  • 支持编译运行

    • 在现代浏览器中,JavaScript 都是编译后运行,高度优化,运行效率接近 二进制程序

    • 还有一种 WebAssembly 格式,它是 JavaScript 引擎的中间码格式,全部都是二进制代码,

      由于跳过了编译步骤,可以达到接近原生二进制代码的运行速度,各种语言编译成 WebAssembly,就可以在浏览器里面运行 如 C 和 C++

  • 事件驱动 和 非阻塞式设计

    • 在服务端适合高并发环境,普通的硬件就可以承受很大的访问量

最后更新于