什么是 JavaScript?
JavaScript 是一种高级解释型编程语言,使网页具有交互性,是 Web 应用程序的重要组成部分。它在浏览器和服务器(Node.js)上运行,使其成为最通用的编程语言之一。
快速了解
| 全称 | JavaScript 编程语言 |
|---|---|
| 创建时间 | 1995 年由 Brendan Eich 在 Netscape 创建 |
| 规范文档 | 官方规范 |
工作原理
JavaScript 由 Brendan Eich 于 1995 年在 Netscape 仅用 10 天创建。尽管名称如此,它与 Java 没有直接关系。JavaScript 是一种多范式语言,支持事件驱动、函数式和面向对象的编程风格。它是唯一被 Web 浏览器原生支持的编程语言,使其对前端开发至关重要。通过 Node.js,JavaScript 扩展到了服务器端开发。该语言标准化为 ECMAScript,每年更新添加新功能,如箭头函数、async/await 和模块。
主要特点
- 动态类型,具有自动类型转换
- 一等函数和闭包
- 基于原型的面向对象
- 事件驱动和异步编程
- 在浏览器和服务器(Node.js)上运行
- 标准化为 ECMAScript,每年更新
常见用途
- 交互式网页功能
- 单页应用(React、Vue、Angular)
- 服务器端开发(Node.js)
- 移动应用开发(React Native)
- 桌面应用(Electron)
示例
Loading code...常见问题
JavaScript 和 Java 有什么区别?
尽管名称相似,JavaScript 和 Java 是完全不同的语言。Java 是静态类型的编译语言,主要用于企业应用和 Android 开发。JavaScript 是动态类型的解释语言,专为 Web 浏览器设计。名称相似是 Netscape 在 1995 年的营销决策。
JavaScript 中 let、const 和 var 有什么区别?
var 是函数作用域,可以重新声明,这可能导致 bug。let 是块作用域,可以重新赋值但不能在同一作用域内重新声明。const 也是块作用域,但初始化后不能重新赋值。现代 JavaScript 推荐默认使用 const,需要重新赋值时使用 let。
JavaScript 中 == 和 === 有什么区别?
==(宽松相等)在类型转换后比较值,所以 '5' == 5 为 true。===(严格相等)同时比较值和类型,不进行转换,所以 '5' === 5 为 false。通常建议使用 === 以避免意外的类型转换 bug。
什么是 JavaScript 中的闭包?
闭包是一个函数,即使在外部函数返回后,它仍然保留对其外部(封闭)作用域中变量的访问权。闭包支持数据私有化、函数工厂和回调。例如,内部函数可以记住并访问其父函数中定义的变量。
JavaScript 中 null 和 undefined 有什么区别?
undefined 表示变量已声明但未赋值,或函数没有返回值。null 是有意的赋值,表示「无值」或「空」。typeof undefined 返回「undefined」,而 typeof null 返回「object」(历史遗留 bug)。当你想明确表示值的缺失时使用 null。