JavaScript 简介
在动手写代码之前,我们先认识一下 JavaScript 到底是什么、为什么值得学、能用它做什么。理解了背景,学习的时候会更有的放矢。
JavaScript 是什么?
JavaScript(简称 JS)是一门动态、弱类型、解释型的编程语言,主要运行在浏览器里,是网页唯一原生支持的脚本语言。和 HTML(负责结构)、CSS(负责样式)一起,并称前端三大基石。HTML 是骨架,CSS 是皮肤,而 JS 就是网页的"大脑"——点击按钮弹个框、表单填错提示红字、刷页面时自动加载最新数据,这些都是 JS 在干活。
诞生历史:10 天赶制出来的语言
JS 的诞生充满了戏剧性。1995 年,网景公司(Netscape)决定给自己的浏览器加一种"能在网页上跑的脚本语言"。当时公司派工程师 Brendan Eich 来做这件事,他原本想做一门类似 Scheme(函数式)的语言,但市场部门要求"语法必须长得像 Java"——因为那时 Java 正火,蹭热度有利于推广。
结果 Brendan Eich 只用了 10 天就把原型写出来了,融合了 Java 的语法、Scheme 的函数式特性、Self 的原型继承。这门语言最初叫 Mocha,后来改名 LiveScript,最后为了蹭 Java 的热度定名 JavaScript——其实它和 Java 是两门完全不同的语言,这是历史遗留的命名误会,常被戏称为"Java 和 JavaScript 的关系,就像雷锋和雷峰塔的关系"。
核心特点
- 解释型:不需要编译,浏览器直接解析执行,改完代码刷新页面就生效。
- 动态类型:变量没有固定类型,同一个变量可以先存数字再存字符串(
let x = 1; x = "hi";),写起来灵活,但也容易出 bug。 - 弱类型:运算时会自动做类型转换,比如
"3" + 2得到字符串"32","3" - 2却得到数字1。这种行为反直觉,所以推荐用===严格比较。 - 函数是一等公民:函数可以赋值给变量、当参数传、当返回值,这是它灵活的根源。
- 基于原型:JS 没有 Java 那样的"类继承",而是用原型链实现继承(ES6 的
class只是语法糖)。 - 单线程 + 异步:JS 主线程是单线程的,通过事件循环(event loop)处理异步任务,避免页面卡死。
- 跨平台:浏览器、服务器(Node.js)、桌面(Electron)、移动端(React Native)都能跑。
第一个 JavaScript 程序
JS 是所有语言里练手成本最低的——你不需要装任何环境。只要有一个浏览器(Chrome/Edge/Safari/Firefox),打开任意网页,按 F12 调出开发者工具,切到 Console 面板,就能直接输入代码回车运行:
// 浏览器里按 F12 → Console,粘贴这段代码回车
console.log("Hello, World!");
// 输出: Hello, World!
// 弹窗警告框(在网页里会跳出)
alert("欢迎使用 JavaScript!");
// 弹出对话框,用户输入
const name = prompt("你叫什么名字?");
console.log("你好," + name);console.log() 把信息打印到控制台,是调试最常用的方法;alert() 弹出警告框;prompt() 弹出输入框。这三兄弟是新手最早接触的 API。
把 JS 嵌入网页的三种方式
实际开发中,JS 代码通常和 HTML 配合使用:
<!-- 方式 1:直接嵌在 HTML 里 -->
<script>
console.log("内联脚本运行了");
</script>
<!-- 方式 2:引入外部 .js 文件(推荐) -->
<script src="app.js"></script>
<!-- 方式 3:在地址栏运行(只在测试时用,浏览器会拦截) -->
javascript: alert(123);推荐用外部文件(方式 2),好处是浏览器能缓存、HTML 更干净、可以多页复用。<script> 标签默认放在 <head> 会阻塞页面渲染,加上 defer 属性或放到 </body> 之前能避免这个问题。
ECMAScript 标准
JS 的官方标准叫 ECMAScript(简称 ES),由 ECMA 国际组织维护。几个关键节点:
- ES1(1997):第一版标准。
- ES3(1999):加入正则、try/catch,基本奠定现代 JS 雏形。
- ES5(2009):严格模式、JSON、数组方法(
forEach/map)。 - ES6 / ES2015:最大的飞跃,引入
let/const、箭头函数、Promise、模块、类、解构、模板字符串等数十项核心特性。 - ES2016 至今:每年发布一版(
async/await2017、可选链 2020、??2020 等),小幅迭代。
现在说"现代 JS"基本指 ES6 之后的版本。老浏览器(IE)不支持新特性,项目里通常用 Babel 把新语法"编译"回 ES5。
JavaScript 都用在哪?
- 网页前端:这是 JS 的本职。任何"会动"的网页都离不开它,框架有 React、Vue、Angular。
- 服务器端(Node.js):用 Chrome 的 V8 引擎把 JS 搬到服务器,Express、Koa、NestJS 是知名框架。
- 桌面应用:Electron 把网页打包成桌面软件,VS Code、Slack、Discord 都是这么做的。
- 移动端:React Native 用 JS 写 iOS/Android 原生 App。
- 命令行工具:前端工程化工具 webpack、vite、eslint 全是 JS 写的。
- 游戏与可视化:Canvas、Three.js、D3.js 做游戏、3D、数据图表。
JS vs 其他语言
- vs Java:语法上 JS 借鉴了 Java,但完全不同。JS 动态类型、解释执行、基于原型;Java 静态类型、编译为字节码、基于类。两者唯一的联系就是名字蹭热度。
- vs Python:都是动态语言,都易学。Python 强在数据科学、AI;JS 强在浏览器生态。
- vs TypeScript:TS 是 JS 的超集,加了静态类型,编译后变成 JS。大型项目推荐用 TS,但学 TS 之前要先会 JS。
该不该学 JS?
如果你的方向是前端开发、全栈、移动端、甚至桌面应用,JS 几乎是必修课。它的就业机会、社区资源、教程数量都名列前茅,对新手极其友好。学完本系列,你将能独立做出可交互的网页、读懂主流框架的代码、为后续学 React/Vue/Node.js 打下坚实基础。
← 返回 JavaScript 教程目录
下一篇 JavaScript 基础语法 →