Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Query-string encoding của JavaScript Object

Query string = tham số URL gửi lên server. Xây dựng thủ công bằng encodeURIComponent.

ES6 one-liner

let obj = { name: 'John', age: 25, city: 'Chicago' };
let qs = Object.keys(obj)
  .map(k => `${encodeURIComponent(k)}=${encodeURIComponent(obj[k])}`)
  .join('&');
console.log(qs); // "name=John&age=25&city=Chicago"

Native modern: URLSearchParams (ES2015+)

const params = new URLSearchParams(obj);
console.log(params.toString()); // "name=John&age=25&city=Chicago"

// Hoặc từ object
const params2 = new URLSearchParams({ name: 'John', age: 25 });
params2.append('city', 'Chicago');
console.log(params2.toString());

Lợi ích URLSearchParams

  • Auto encode/escape đúng chuẩn.
  • Hỗ trợ multi-value key: params.append('tag', 'a'); params.append('tag', 'b').
  • Dễ parse ngược: new URLSearchParams(window.location.search).