JavaScript 基础

💡 原文英文,约1300词,阅读约需5分钟。
📝

内容提要

JavaScript由Brendan Eich用十天设计,原名LiveScript,是运行于客户端的脚本语言,现也用于服务端。它可用于表单验证、网页特效、服务端、桌面应用、App、物联网和游戏开发。浏览器通过渲染引擎和JS引擎执行代码。JS由ECMAScript、DOM和BOM组成,可内联、嵌入或外部引入。变量用var、let或const声明,推荐const。命名遵循驼峰式,不能用关键字和保留字。

🔎

延伸解读

JavaScript 的诞生与定位

文章提到 Brendan Eich 仅用 10 天完成 JavaScript 设计,最初命名为 LiveScript,后与 Sun 合作更名为 JavaScript。它最初是运行在客户端的脚本语言,如今借助 Node.js 也可用于服务端。脚本语言无需编译,由 JS 引擎逐行解释执行。了解这段历史有助于理解 JavaScript 为何带有一些历史遗留特性,以及它从简单表单验证发展到多领域应用的历程。

浏览器如何执行 JavaScript

浏览器包含渲染引擎和 JS 引擎两部分。渲染引擎解析 HTML 和 CSS,常被称为浏览器内核,如 Chrome 的 Blink;JS 引擎又称 JS 解释器,负责读取并处理网页中的 JavaScript 代码,如 Chrome 的 V8。浏览器本身并不执行 JS 代码,而是通过内置的 JS 引擎逐行解释源代码,将其转换为机器语言后由计算机执行。这解释了为什么不同浏览器对 JS 的支持可能略有差异。

变量声明:var、let 与 const 的选择

文章指出 var 存在变量提升、允许重复声明、没有块级作用域等不合理之处,因此推荐使用 let。而 const 用于声明不会重新赋值的变量,且必须在声明时初始化。对于数组和对象等引用类型,const 声明的是地址,修改堆中内容不会改变地址,因此可以添加元素;但若重新赋值改变地址则会报错。实际开发中建议优先使用 const,需要修改时再改为 let。

命名规范与关键字避坑

变量命名由字母、数字、下划线和美元符号组成,不能以数字开头,区分大小写,并遵循驼峰式(如 myFirstName)。不能使用关键字(如 var、for、while)和保留字(如 class、const、enum)作为变量或方法名。文章特别提醒,使用保留字可能不会立即报错,但一旦未来浏览器实现该保留字,就会被视为关键字并导致错误,因此应主动避免。

❓

Q&A

JavaScript 是谁设计的?用了多长时间?

JavaScript 由 Brendan Eich(生于1961年)用10天完成设计。

JavaScript 最初叫什么名字?后来为什么改名?

最初名为 LiveScript,后来在与 Sun 合作后改名为 JavaScript。

JavaScript 主要应用在哪些领域?

JavaScript 可用于动态表单验证(如密码强度检查)、网页特效、服务端开发(Node.js)、桌面应用(Electron)、App(Cordova)、硬件控制与物联网(Ruff)以及游戏开发(cocos2d-js)。

浏览器是如何执行 JavaScript 代码的?

浏览器包含渲染引擎和 JS 引擎。渲染引擎解析 HTML 和 CSS(如 Chrome 的 Blink);JS 引擎(如 Chrome 的 V8)逐行解释执行 JavaScript 代码,将其转换为机器语言后由计算机执行。

JavaScript 由哪几部分组成?

JavaScript 由 ECMAScript、DOM 和 BOM 三部分组成。ECMAScript 定义语法和核心基础;DOM 是处理网页元素的标准编程接口;BOM 用于操作浏览器窗口。

在 JavaScript 中声明变量有哪几种方式?推荐用哪种?

有三种方式:var、let 和 const。推荐优先使用 const,如果后续需要修改再改为 let。const 声明的变量不能重新赋值,且必须在声明时初始化。

JavaScript 变量命名有哪些规则?

命名由字母、数字、下划线和美元符号组成;区分大小写;不能以数字开头;不能使用关键字和保留字;遵循驼峰式命名(如 myFirstName)。

在 HTML 中引入 JavaScript 有哪几种方式?

有三种方式:内联(在 HTML 标签的事件属性中写 JS,如 onclick)、嵌入式(在 <script> 标签内写多行 JS)、外部引入(通过 <script src="my.js"></script> 引入外部文件)。

🏷️

标签

➡️

继续阅读