JavaScript 基础知识回顾

JavaScript 基础知识回顾

JavaScript 是前端开发的核心语言。本文回顾一些基础但重要的知识点。

数据类型

JavaScript 有以下基础数据类型:

原始类型

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 数字
const num = 42;
const float = 3.14;

// 字符串
const str = "Hello";
const str2 = 'World';

// 布尔值
const isTrue = true;
const isFalse = false;

// undefined
let x;
console.log(x); // undefined

// null
const emptyValue = null;

// Symbol(ES6)
const symbol = Symbol('desc');

// BigInt(大整数)
const bigNum = 9007199254740992n;

引用类型

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// 对象
const obj = { name: 'John', age: 30 };

// 数组
const arr = [1, 2, 3, 4, 5];

// 函数
function greet(name) {
    return `Hello, ${name}!`;
}

变量声明

var / let / const

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// var - 函数作用域(已过时)
var oldVar = 1;

// let - 块作用域(推荐)
let x = 1;
x = 2; // 可以重新赋值

// const - 块作用域(推荐)
const y = 1;
// y = 2; // 错误:不能重新赋值

函数

函数声明

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
// 函数声明
function add(a, b) {
    return a + b;
}

// 函数表达式
const multiply = function(a, b) {
    return a * b;
};

// 箭头函数(ES6)
const subtract = (a, b) => a - b;

// 箭头函数(多行)
const divide = (a, b) => {
    if (b === 0) return 0;
    return a / b;
};

对象和数组

对象操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
const person = {
    name: 'Alice',
    age: 25,
    sayHi() {
        console.log(`Hi, I'm ${this.name}`);
    }
};

// 访问属性
console.log(person.name);
console.log(person['age']);

// 解构赋值
const { name, age } = person;

数组操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
const numbers = [1, 2, 3, 4, 5];

// 常用方法
numbers.push(6);           // 添加元素
numbers.pop();             // 删除最后一个
numbers.map(n => n * 2);   // 映射
numbers.filter(n => n > 2); // 筛选
numbers.reduce((a, b) => a + b); // 规约

// 解构赋值
const [first, second, ...rest] = numbers;

异步编程

回调函数

1
2
3
4
5
6
7
8
9
function fetchData(callback) {
    setTimeout(() => {
        callback('Data loaded');
    }, 1000);
}

fetchData((data) => {
    console.log(data);
});

Promise

1
2
3
4
5
6
7
8
9
const promise = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve('Success!');
    }, 1000);
});

promise
    .then(result => console.log(result))
    .catch(error => console.error(error));

async/await

1
2
3
4
5
6
7
8
9
async function getData() {
    try {
        const response = await fetch('/api/data');
        const data = await response.json();
        return data;
    } catch (error) {
        console.error('Error:', error);
    }
}

常见陷阱

  1. 类型强制转换:注意 JavaScript 的隐式类型转换
  2. this 指向:arrow 函数和普通函数的 this 不同
  3. 闭包:理解变量作用域和闭包陷阱
  4. 异步顺序:回调地狱和 Promise 链
  5. 事件委托:理解事件冒泡和委托

最佳实践

  • 使用 letconst,避免 var
  • 尽可能使用现代 JavaScript(ES6+)
  • 使用严格模式:'use strict'
  • 编写可读性强的代码
  • 使用工具检查代码质量(ESLint)

小结

掌握 JavaScript 基础是成为优秀前端开发者的基石。不断学习和实践,才能写出更好的代码。


希望这篇文章对你有帮助!如有疑问,欢迎讨论。

使用 Hugo 构建
主题 StackJimmy 设计