JavaScript简介
- 被称为 脚本,直接写在网页的 HTML 中,页面加载的时候自动执行,脚本被以纯文本的形式提供和执行,不需要准备或者编译直接执行
- 语言规范: ECMAScript
- JavaScript 不仅可以在浏览器中执行,也可以在服务端执行,任意搭载了 JavaScript 引擎 的设备中执行。
- V8 —— Chrome、Opera 和 Edge 中的 JavaScript 引擎。
- SpiderMonkey —— Firefox 中的 JavaScript 引擎。
- 引擎:读取解析脚本,将脚本转化为机器语言,然后机器语言在执行
- 浏览器中的JavaScript不能做什么?
- 为了用户信息安全,js的能力是受限的,目的是防止窃取用户的私人信息。
- 网页中的 JavaScript 不能读、写、复制和执行硬盘上的任意文件。它没有直接访问操作系统的功能。仅当用户做出特定的行为,JavaScript 才能操作这个文件。例如,用户把文件“拖放”到浏览器中,或者通过
<input>
标签选择了文件。 - 相机/麦克风和其它设备进行交互的方式,但是这些都需要获得用户的明确许可, 一般情况下不同的标签和窗口是不能互相通信的,同源策略
- js可以通过互联网与当前页面所在的服务器进行通信,需要来自远程服务器的明确协议(在 HTTP header 中),确保用户安全
- js的不同之处
- 与 HTML/CSS 完全集成。
- 简单的事,简单地完成。
- 被所有的主流浏览器支持,并且默认开启。创建浏览器界面的使用最广泛的工具。
- JavaScript 还可用于创建服务器和移动端应用程序等。
- JS--上层语言
- 允许根据不同的需求使用另外一种语言,最后转换成JS
- 例如:
- CoffeeScript 是 JavaScript 的一种语法糖。简短的语法,编写更清晰简洁的代码。Ruby 开发者喜欢它。
- TypeScript 专注于添加“严格的数据类型”以简化开发,以更好地支持复杂系统的开发。由微软开发。
- Flow 也添加了数据类型,但是以一种不同的方式。由 Facebook 开发。
- Dart 是一门独立的语言。它拥有自己的引擎,该引擎可以在非浏览器环境中运行(例如手机应用),它也可以被编译成 JavaScript。由 Google 开发。
- Brython 是一个 Python 到 JavaScript 的转译器,让我们可以在不使用 JavaScript 的情况下,以纯 Python 编写应用程序。
- Kotlin 是一个现代、简洁且安全的编程语言,编写出的应用程序可以在浏览器和 Node 环境中运行。
- 总结:JS称为脚本,最开始为浏览器设计,最后也被运用与其他环境, 被应用最广泛的浏览器语言,且与 HTML/CSS 完全集成
手册与规范
- ECMA-262 规范:https://tc39.es/ecma262/。
- MDN(Mozilla)JavaScript 索引 是一个带有用例和其他信息的主要的手册。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference
- 兼容性表:
- https://caniuse.com —— 每个功能的支持表,例如,查看哪个引擎支持现代加密(cryptography)函数:https://caniuse.com/#feat=cryptography。
- https://kangax.github.io/compat-table —— 一份列有语言功能以及引擎是否支持这些功能的表格。
代码编辑器
- 集成开发环境(IDE)和轻量编辑器
- IDE有:VScode,WebStorm(收费)
- 轻量编辑器优点:一般很快,优雅简单。例如:Sublime Text、Notepad++、VIM、Emacs
开发者控制台
- F12,用于开发者找到错误调试bug