Skip to content

JavaScript

基础语法

变量声明

javascript
// ES5
var name = 'Alice';

// ES6+
let age = 25;           // 可变
const PI = 3.14;        // 常量

数据类型

  • string - 字符串
  • number - 数字
  • boolean - 布尔值
  • null - 空值
  • undefined - 未定义
  • object - 对象
  • symbol - 符号(ES6)

ES6+ 新特性

箭头函数

javascript
const add = (a, b) => a + b;

const arr = [1, 2, 3];
const doubled = arr.map(x => x * 2);

解构赋值

javascript
// 对象解构
const { name, age } = person;

// 数组解构
const [first, second] = arr;

// 默认值
const { role = 'user' } = user;

Promise 异步

javascript
fetch('/api/data')
    .then(res => res.json())
    .then(data => console.log(data))
    .catch(err => console.error(err));

// async/await
async function getData() {
    try {
        const res = await fetch('/api/data');
        const data = await res.json();
        return data;
    } catch (err) {
        console.error(err);
    }
}

面试题

== 和 === 的区别

  • == - 宽松相等,会进行类型转换
  • === - 严格相等,不转换类型

var、let、const 的区别

特性varletconst
作用域函数作用域块级作用域块级作用域
重复声明可以不可以不可以
重新赋值可以可以不可以

闭包

javascript
function outer() {
    let count = 0;
    return function inner() {
        return ++count;
    };
}

const counter = outer();
counter();  // 1
counter();  // 2

基于 MIT 许可发布