Skip to content

JavaScript 简介

什么是 JavaScript?

JavaScript 是一种轻量级、解释型或即时编译型的编程语言。虽然它最著名的是作为网页脚本语言,但如今已广泛应用于多个领域:

  • 前端开发:为网页添加交互性和动态效果
  • 后端开发:通过 Node.js 构建服务器端应用
  • 移动应用:使用 React Native、Ionic 等框架开发跨平台移动应用
  • 桌面应用:使用 Electron 构建跨平台桌面应用
  • 游戏开发:创建网页游戏和简单的游戏应用

JavaScript 的特点

1. 动态类型

JavaScript 是动态类型语言,变量可以在运行时改变类型:

javascript
let message = 'Hello' // 字符串类型
message = 42 // 现在是数字类型
message = true // 现在是布尔类型

2. 弱类型

JavaScript 允许不同类型之间的隐式转换:

javascript
console.log('5' + 3) // '53' (字符串拼接)
console.log('5' - 3) // 2 (数字相减)

3. 基于原型的面向对象

JavaScript 使用原型链实现继承,而非传统的类继承(ES6 的 class 语法是原型继承的语法糖):

javascript
function Person(name) {
  this.name = name
}

Person.prototype.greet = function () {
  console.log(`Hello, I'm ${this.name}`)
}

const person = new Person('Alice')
person.greet() // Hello, I'm Alice

4. 事件驱动

JavaScript 非常适合处理异步事件:

javascript
document.getElementById('button').addEventListener('click', function () {
  console.log('Button clicked!')
})

5. 单线程与异步编程

JavaScript 主线程是单线程的,但通过事件循环机制处理异步操作:

javascript
console.log('Start')

setTimeout(() => {
  console.log('Async operation')
}, 1000)

console.log('End')

// 输出顺序: Start -> End -> Async operation

JavaScript 的历史

年份事件
1995Brendan Eich 在 10 天内创建了 JavaScript(最初叫 Mocha)
1996JavaScript 提交给 ECMA 国际组织标准化
1997ECMAScript 1 发布
2009ECMAScript 5 发布,Node.js 诞生
2015ECMAScript 6 (ES2015) 发布,引入大量新特性
至今每年发布一个新版本,持续演进

JavaScript 与 ECMAScript 的关系

  • ECMAScript 是语言规范/标准
  • JavaScript 是 ECMAScript 规范的一种实现
  • 其他实现还包括 JScript(微软)、ActionScript 等

现代 JavaScript (ES6+)

ES6 及后续版本引入了许多重要特性:

let 和 const

javascript
let count = 1 // 块级作用域变量
const PI = 3.14159 // 常量

箭头函数

javascript
const add = (a, b) => a + b
const square = x => x * x

解构赋值

javascript
const { name, age } = person
const [first, second, ...rest] = array

模板字符串

javascript
const greeting = `Hello, ${name}!`

Promise 和 async/await

javascript
// Promise
fetch('/api/data')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error))

// async/await
async function fetchData() {
  try {
    const response = await fetch('/api/data')
    const data = await response.json()
    console.log(data)
  } catch (error) {
    console.error(error)
  }
}

模块化

javascript
// 导出
export const name = 'module'
export default function () {
  /* ... */
}

// 导入
import defaultExport, { name } from './module.js'

数据类型

JavaScript 有以下数据类型:

原始类型(Primitive Types)

类型描述示例
undefined未定义let x;
null空值let x = null;
boolean布尔值true, false
number数字42, 3.14, NaN, Infinity
string字符串'hello', "world", `template`
symbol符号(ES6)Symbol('id')
bigint大整数(ES2020)9007199254740991n

引用类型

  • Object:对象
  • Array:数组
  • Function:函数
  • Date:日期
  • RegExp:正则表达式
  • Map / Set:映射和集合(ES6)
  • WeakMap / WeakSet:弱映射和弱集合

学习路线建议

  1. 基础语法:变量、数据类型、运算符、流程控制
  2. 函数:函数声明、箭头函数、作用域、闭包
  3. 对象与数组:对象操作、数组方法、解构赋值
  4. DOM 操作:元素选择、事件处理、动态修改
  5. 异步编程:回调函数、Promise、async/await
  6. ES6+ 新特性:模块化、类、扩展运算符等
  7. 框架学习:React、Vue、Angular 等

相关资源

基于 VitePress 的本地知识库