[分享]什么是JavaScript
什么是 JavaScript?
当你浏览网页时,那些会动的轮播图、点击后弹出的提示框、无需刷新就能加载新内容的页面——这些"活"的部分,背后几乎都是由 JavaScript 驱动的。
JavaScript 最初被设计出来的目的非常单纯:让网页变得更生动。它是一种轻量级的、跨平台的脚本语言,专门用来为网页添加交互性,比如实现复杂的动画、让按钮可以点击、创建弹出的菜单等等。
为什么叫"JavaScript"?
这个命名曾让无数初学者困惑:它和 Java 有关系吗?
答案是:基本没有。这是一个历史原因。JavaScript 在 1995 年诞生时,它的名字叫 “LiveScript”。那时,Java 这门编程语言正如日中天,非常流行。为了借着 Java 的名气来推广自己,Netscape 公司决定将它改名为 “JavaScript”。
这个改名虽然让 JavaScript 被更多人认识,但也造成了持久的误解。实际上,除了语法上有一些表面相似性,JavaScript 和 Java 是两门完全不同的语言。
JavaScript 的核心特点
要理解 JavaScript,可以抓住以下几个核心点:
1. 一种解释型、弱类型的语言
JavaScript 是一种解释型语言,这意味着它不需要像 Java 或 C++ 那样先编译成机器码再运行。浏览器会直接读取你写的代码并逐行解释执行,这让开发和调试变得非常快捷。
同时,JavaScript 是弱类型的,或者说是动态类型。这意味着你在声明变量时,不需要指定它存储的是数字、文本还是别的什么。语言本身会在运行时根据上下文自动判断。
1 | // 注意下面代码中变量的用法:一个变量可以先后存储不同类型的值 |
2. 基于原型而非基于类
Java 等语言是基于类的:你需要先设计一个"类"作为蓝图,然后用这个蓝图去创建"对象"实例。
而 JavaScript 是基于原型的。它没有"类"的概念(至少在 ES6 的 class 语法糖出现之前),对象可以直接从其他对象那里"继承"属性和方法,这种方式更加灵活和动态。
3. 事件驱动
这是 JavaScript 为网页带来交互性的关键。它就像一个随时待命的服务员,可以监听用户在网页上的各种操作,比如点击、鼠标移动、键盘输入等。当这些"事件"发生时,JavaScript 就会执行预先写好的代码来做出响应。
1 | // 这段代码的含义是:当用户点击网页时,弹出一个提示框 |
完整的 JavaScript 由什么组成?
在浏览器中,一个完整的 JavaScript 实现由三大部分组成:
-
ECMAScript(核心):这是 JavaScript 的"语法和基本规则手册"。它定义了语言的核心功能,比如变量、运算符、循环、条件判断,以及
Array(数组)、Date(日期)、Math(数学)等内置对象。 -
文档对象模型(DOM):你可以把网页想象成一颗"文档树",而 DOM 就是 JavaScript 操作这棵树的"工具包"。通过 DOM,JavaScript 可以动态地创建、删除或修改网页上的任何元素、属性或样式。
-
浏览器对象模型(BOM):这是 JavaScript 与浏览器本身进行交互的"接口"。通过 BOM,JavaScript 可以获取浏览器窗口大小、访问浏览历史、控制 Cookies 等。
JavaScript 能做什么(以及不能做什么)
在浏览器中,JavaScript 可以做这些事:
- 改变网页内容和样式:动态地添加、删除或修改 HTML 元素和 CSS 样式。
- 响应用户操作:处理点击、键盘输入、鼠标移动等各种交互行为。
- 与服务器通信:在不刷新页面的情况下,向服务器请求或发送数据(这就是 AJAX 技术)。
- 存储本地数据:在用户的浏览器中存储少量数据,比如网站偏好设置(即 LocalStorage)。
为了用户安全,浏览器中的 JavaScript 不能做这些事:
- 读写本地文件:不能随意读取或修改你电脑硬盘上的文件。
- 访问操作系统:无法直接调用操作系统底层的功能或API。
- 跨标签页/窗口窃取信息:出于安全考虑,不同网站的页面之间无法随意读取对方的数据,这被称为"同源策略"。
JavaScript 的"大本营"——浏览器与引擎
JavaScript 需要一个"宿主环境"才能运行,而浏览器就是它最常见的家。每个主流浏览器都内置了 JavaScript 引擎,负责解析和执行代码:
- Chrome 和 Edge:使用名为 V8 的引擎。
- Firefox:使用名为 SpiderMonkey 的引擎。
- Safari:使用名为 JavaScriptCore 的引擎。
这些引擎的性能强弱,直接决定了 JavaScript 代码在你浏览器里的运行速度。
总结
JavaScript 最初只是一门为浏览器设计的"小脚本",如今却成长为现代 Web 开发的基石。它通过事件驱动和与 HTML/CSS 的无缝集成,赋予了网页鲜活的灵魂。而像 V8 这样的高性能引擎,以及 Node.js 等服务器端运行时环境的发展,更让 JavaScript 突破了浏览器的边界,成为了一门全栈通用的强大语言。






![[分享]什么是JavaScript](/../blogimage/260729/260729.webp)
![[分享]CSS的基本语法](/../blogimage/260730/260730_5.webp)
![[分享]什么是CSS样式表](/../blogimage/260730/260730_4.webp)