JavaScript(简称 JS)是一种轻量级的、解释型的、基于原型的、动态类型的编程语言。它由 Brendan Eich 于 1995 年在 Netscape 公司仅用 10 天设计完成,最初命名为 Mocha,后改为 LiveScript,最终定名为 JavaScript(与 Java 无关,是营销策略)。
JavaScript 的核心定位是 "Web 的编程语言"。它是浏览器中唯一通用的编程语言,也是全栈开发(Node.js)的重要语言。JavaScript 提供了:
1995 年,Netscape 公司雇佣了 Brendan Eich,要求他在 10 天内为 Netscape Navigator 浏览器设计一门脚本语言。Eich 结合了 Scheme 的函数式特性、Java 的语法风格、Self 的原型继承,创造了 JavaScript(当时叫 Mocha)。
var(老版本,有函数作用域)let(块级作用域,ES6+)const(常量,ES6+)// 单行、/* */ 多行"use strict";(更安全)// 变量声明
let name = "JavaScript"; // 块级作用域
const PI = 3.14159; // 常量
var old = "不推荐"; // 函数作用域
// 严格模式
"use strict";
console.log("Hello, JavaScript!");
number:整数 + 浮点数(不区分)string:字符串boolean:布尔值(true/false)undefined:未定义null:空值symbol:唯一标识符(ES6+)bigint:大整数(ES2020+)object:对象 { key: "value" }array:数组 [1, 2, 3]function:函数date:日期regexp:正则表达式// 动态类型
let x = 42; // number
x = "hello"; // string
x = true; // boolean
x = { a: 1 }; // object
// 数组(动态、可混用)
let arr = [1, "two", true, { a: 3 }];
`Hello, ${name}!`split()、join()、trim()、replace()if / else if / elsefor、while、do-whilefunction add(a, b) { return a + b; }const add = (a, b) => a + b;const add = function(a, b) { return a + b; };function greet(name = "World")function sum(...numbers)// 箭头函数
const double = (x) => x * 2;
const greet = (name = "World") => `Hello, ${name}!`;
// 回调函数
const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(n => n * 2);
const evens = numbers.filter(n => n % 2 === 0);
// 闭包
function createCounter() {
let count = 0;
return function() {
count++;
return count;
};
}
const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
const obj = { name: "JS", year: 1995 };obj.name 或 obj["name"]class Person { constructor(name) { this.name = name; } }class Student extends Personconst { name, age } = person;const newObj = { ...obj, extra: "value" };// 类与继承(ES6+)
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
return `Hello, I'm ${this.name}, ${this.age} years old.`;
}
}
class Student extends Person {
constructor(name, age, school) {
super(name, age);
this.school = school;
}
greet() {
return `${super.greet()} I study at ${this.school}.`;
}
}
// 对象解构
const person = { name: "Alice", age: 30, city: "Beijing" };
const { name, age } = person;
console.log(name, age);
// 展开运算符
const person2 = { ...person, age: 31 };
push、pop、shift、unshiftforEach、map、filter、reducefind、findIndex、includesarr.filter(...).map(...).reduce(...)const numbers = [1, 2, 3, 4, 5, 6];
// 链式操作
const result = numbers
.filter(n => n % 2 === 0) // [2, 4, 6]
.map(n => n * 2) // [4, 8, 12]
.reduce((sum, n) => sum + n, 0); // 24
// 排序
const sorted = numbers.sort((a, b) => a - b);
// 去重
const unique = [...new Set([1, 2, 2, 3, 3, 3])];
new Promise((resolve, reject) => {...})// Promise 示例
const fetchData = (url) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (url) {
resolve(`Data from ${url}`);
} else {
reject("No URL provided");
}
}, 1000);
});
};
// async/await
async function main() {
try {
const result = await fetchData("https://api.example.com");
console.log(result);
} catch (error) {
console.error(error);
}
}
// 并发请求
const urls = ["url1", "url2", "url3"];
const results = await Promise.all(urls.map(url => fetchData(url)));
export default、export constimportmodule.exports、exportsrequire()document.getElementById()、document.querySelector()element.textContent、element.innerHTMLelement.addEventListener("click", handler)document.createElement()localStorage、sessionStorageNode.js 是基于 Chrome V8 引擎的 JavaScript 运行时,由 Ryan Dahl 于 2009 年创建。Node.js 让 JavaScript 可以在服务端运行,实现了 "JavaScript Everywhere" 的理念。
JavaScript 是浏览器中唯一通用的编程语言,所有现代浏览器都支持 JavaScript。
JavaScript + Node.js 让开发者可以用同一门语言开发前端和后端,降低了学习成本和上下文切换。
npm 拥有超过 200 万个包,是全球最大的软件仓库。JavaScript 的生态系统极其活跃和繁荣。
JavaScript 的事件驱动模型和非阻塞 I/O 让它非常适合处理高并发场景。
JavaScript 拥有全球最庞大的开发者社区,新框架、新技术层出不穷,始终保持活力。
通过 Node.js、Electron、React Native,JavaScript 可以运行在服务器、桌面、移动端。
JS 基础语法、变量、数据类型、控制流、函数、DOM 操作
箭头函数、解构、模板字符串、Promise、async/await、模块
前端:React/Vue/Angular
后端:Node.js + Express/NestJS
TypeScript、性能优化、测试(Jest)、工程化(Webpack/Vite)
JavaScript 是 Web 时代的"通用语言"。
它从 10 天的"小玩具"成长为全球最流行的编程语言,覆盖了 前端、后端、移动端、桌面端 的所有领域。JavaScript 的生态系统是地球上最活跃、最繁荣的。
无论你是前端开发者、全栈工程师,还是想进入 Web 开发的初学者,JavaScript 都是必修课。它可能不是最完美的语言,但它是 Web 世界不可或缺的基础。
"任何能用 JavaScript 实现的应用,最终都会用 JavaScript 实现。" 🌐
—— Atwood's Law(阿特伍德定律)