Bảng tra cứu JavaScript
Một tài liệu tham khảo JavaScript hiện đại có thể tìm kiếm và in được — cú pháp, mảng, chuỗi, đối tượng, async/await, DOM và các tính năng ES2022+. Miễn phí.
Biến & kiểu
10let x = 1;
Biến phạm vi khối, gán lại được
const PI = 3.14;
Ràng buộc hằng phạm vi khối
typeof value
Trả về kiểu dưới dạng chuỗi
Number('42')
Chuyển chuỗi thành số
String(42)
Chuyển giá trị thành chuỗi
parseInt('42px', 10)
Phân tích số nguyên đầu (cơ số 10)
Boolean(0)
Ép giá trị thành true/false
value ?? 'default'
Toán tử nullish (chỉ null/undefined)
a?.b?.c
Optional chaining, dừng sớm khi null
Array.isArray(x)
Kiểm tra giá trị có phải mảng
Hàm
9function add(a, b) { return a + b; }
Khai báo hàm có tên
const add = (a, b) => a + b;
Arrow function trả về ngầm
const f = (a = 1) => a;
Giá trị tham số mặc định
function f(...args) {}
Rest parameters gom vào mảng
f(...arr)
Trải mảng thành đối số
const { a, b } = obj;
Phá vỡ cấu trúc object
const [x, y] = arr;
Phá vỡ cấu trúc mảng
(function(){})()
Hàm gọi tức thì (IIFE)
fn.bind(this)
Gán cố định ngữ cảnh this
Chuỗi
10`Hello ${name}`
Nội suy template literal
str.length
Số ký tự
str.includes('a')
Kiểm tra chuỗi con tồn tại
str.slice(0, 3)
Trích một phần chuỗi
str.replace(/a/g, 'b')
Thay thế khớp (regex)
str.split(',')
Tách thành mảng
str.trim()
Xóa khoảng trắng bao quanh
str.toUpperCase()
Chuyển thành chữ hoa
str.padStart(3, '0')
Đệm đầu chuỗi đến độ dài
str.at(-1)
Ký tự tại chỉ số (hỗ trợ số âm)
Mảng
11arr.map(x => x * 2)
Biến đổi từng phần tử
arr.filter(x => x > 0)
Giữ phần tử khớp
arr.reduce((a, b) => a + b, 0)
Rút gọn về một giá trị
arr.find(x => x.id === 1)
Phần tử khớp đầu tiên
arr.some(x => x > 0)
True nếu có phần tử khớp
arr.every(x => x > 0)
True nếu mọi phần tử khớp
arr.includes(3)
Kiểm tra một giá trị
arr.sort((a, b) => a - b)
Sắp xếp số tăng dần
[...new Set(arr)]
Xóa giá trị trùng lặp
arr.flat(Infinity)
Làm phẳng hoàn toàn mảng lồng
arr.at(-1)
Phần tử cuối (chỉ số âm)
Object
9Object.keys(obj)
Mảng các key liệt kê được
Object.values(obj)
Mảng các giá trị
Object.entries(obj)
Mảng các cặp [key, value]
{ ...a, ...b }
Gộp object (spread)
Object.assign({}, a, b)
Sao chép/gộp vào đích
Object.freeze(obj)
Làm object bất biến
{ [key]: value }
Tên thuộc tính tính toán
obj.hasOwnProperty('x')
Kiểm tra thuộc tính riêng
structuredClone(obj)
Sao chép sâu một object
Async & promise
9async function f() {}
Khai báo hàm async
await fetch(url)
Dừng đến khi promise hoàn tất
Promise.all([p1, p2])
Chờ tất cả hoàn tất
Promise.allSettled([p1, p2])
Chờ tất cả ổn định
Promise.race([p1, p2])
Hoàn tất với cái đầu tiên ổn định
new Promise((res, rej) => {})
Tạo promise thủ công
try { await f(); } catch (e) {}
Xử lý lỗi async
setTimeout(fn, 1000)
Chạy sau độ trễ (ms)
queueMicrotask(fn)
Lên lịch microtask
Luồng điều khiển
9if (a) {} else if (b) {} else {}
Nhánh điều kiện
a ? b : c
Biểu thức ba ngôi
switch (x) { case 1: break; }
Nhánh đa hướng
for (const x of arr) {}
Duyệt giá trị (iterable)
for (const k in obj) {}
Duyệt key của object
while (cond) {}
Lặp khi điều kiện đúng
arr.forEach((x, i) => {})
Chạy callback cho mỗi phần tử
break / continue
Thoát hoặc bỏ qua vòng lặp
label: for (...) { break label; }
Thoát khỏi vòng lặp lồng
DOM & sự kiện
10document.querySelector('.x')
Phần tử khớp đầu tiên
document.querySelectorAll('.x')
Tất cả phần tử khớp (NodeList)
el.addEventListener('click', fn)
Gắn trình lắng nghe sự kiện
el.classList.toggle('active')
Bật/tắt class CSS
el.dataset.id
Đọc thuộc tính data-id
el.textContent = 'hi'
Đặt văn bản an toàn (không HTML)
el.setAttribute('aria-hidden', true)
Đặt một thuộc tính
e.preventDefault()
Hủy hành động mặc định
el.closest('.parent')
Tổ tiên khớp gần nhất
document.createElement('div')
Tạo phần tử mới
Class & module
9class A extends B {}
Class có kế thừa
constructor() { super(); }
Khởi tạo và gọi lớp cha
#private = 1;
Trường private của class
static create() {}
Phương thức static của class
get value() {}
Bộ truy cập getter
export default fn;
Export mặc định của module
export { a, b };
Export có tên của module
import x, { y } from './m.js'
Import mặc định + có tên
const m = await import('./m.js')
Import động
Không có mục nào khớp với “:q”.
Cần trợ giúp?
Gặp sự cố với công cụ này? Hãy cho đội ngũ của chúng tôi biết.