JavaScript 基础
内容提要
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> 引入外部文件)。