什么是 JavaScript?

文章

JavaScript 是一种具有一等函数的轻量级解释型编程语言。它是所有主流 Web 浏览器中唯一原生运行的编程语言,使其成为 Web 的语言。JavaScript 为 HTML 页面添加交互性、动画和动态行为。借助 Node.js,它也可以在服务器上运行,使其成为唯一同时覆盖前端和后端开发的语言。

需要格式化或美化 JavaScript 文件?

打开 JavaScript 格式化工具 →

历史

JavaScript 由 Brendan Eich 于 1995 年 5 月在 Netscape 仅用 10 天创建。它最初叫 Mocha,后改为 LiveScript,最终更名为 JavaScript——这是一个营销决策,旨在借助 Sun 的 Java 语言的知名度。尽管名字相似,两种语言毫无关联。JavaScript 于 1997 年被 Ecma International 标准化为 ECMAScript(ES)。重要里程碑包括 ES5(2009)、ES6/ES2015(2015——语言史上最大的更新)以及 ES2016 起的年度发布。

基本语法

JavaScript 是动态类型的:变量可以保存任何类型的值,类型在运行时检查。现代 JavaScript 使用 let 和 const 声明变量。函数是一等值,可以赋给变量、作为参数传递以及从其他函数返回。

// 变量
const name = "小明";
let age = 25;

// 函数
function greet(person) {
  return `你好,${person}!`;
}

// 箭头函数
const square = (n) => n * n;

// 数组方法
const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(n => n * 2);      // [2, 4, 6, 8, 10]
const evens   = numbers.filter(n => n % 2 === 0); // [2, 4]

// Async / Await
async function fetchUser(id) {
  const response = await fetch(`/api/users/${id}`);
  const data = await response.json();
  return data;
}

数据类型

JavaScript 有八种数据类型——七种原始类型和一种对象类型:

核心概念

常见使用场景

JavaScript 与 Java 比较

尽管名字相似,JavaScript 和 Java 是完全不同的语言:

JavaScript 与 TypeScript 比较

TypeScript 是微软开发的 JavaScript 超集,编译为纯 JavaScript:

注意事项

常见问题

什么是 JavaScript?

JavaScript 是一种具有一等函数的轻量级解释型编程语言。它是唯一在所有主流 Web 浏览器中原生运行的编程语言,用于为网页添加交互性、动画和动态行为。通过 Node.js,它也可以在服务器上运行。

JavaScript 有什么用?

JavaScript 用于交互式网页(表单验证、动画、DOM 操作)、单页应用程序(React、Vue、Angular)、服务器端开发(Node.js)、移动应用(React Native)、桌面应用(Electron)和浏览器扩展。

JavaScript 和 Java 一样吗?

不一样。JavaScript 和 Java 是完全不同的语言,只是名字相似。Java 是编译型、静态类型的面向对象语言。JavaScript 是解释型、动态类型的,最初是为浏览器脚本而设计的。

JavaScript 和 TypeScript 有什么区别?

TypeScript 是微软开发的 JavaScript 超集,添加了可选的静态类型。TypeScript 代码编译为纯 JavaScript。所有 JavaScript 代码都是有效的 TypeScript,但 TypeScript 额外添加了类型注解、接口和泛型,有助于在编译时发现错误。

JavaScript 是前端还是后端?

两者都是。JavaScript 最初只在浏览器中运行(前端)。2009 年 Node.js 出现后,JavaScript 也可以在服务器上运行(后端)。这使 JavaScript 成为唯一可以用于前端和后端开发的语言。

JavaScript 容易学吗?

JavaScript 的入门门槛相对较低——只需一个浏览器即可开始。变量、循环和函数等基本概念很直观。然而,异步编程、事件循环、原型继承和框架生态系统需要时间来掌握。

相关文章

参考资料