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 的区别
| 特性 | var | let | const |
|---|---|---|---|
| 作用域 | 函数作用域 | 块级作用域 | 块级作用域 |
| 重复声明 | 可以 | 不可以 | 不可以 |
| 重新赋值 | 可以 | 可以 | 不可以 |
闭包
javascript
function outer() {
let count = 0;
return function inner() {
return ++count;
};
}
const counter = outer();
counter(); // 1
counter(); // 2