toQueryString1.6 改进
toQueryString() -> String
将一个 hash 转换为 URL 编码字符串形式。
这是一种串行化的形式,常用于提供复合的参数集,例如为 Ajax 命名空间中的那些对象提供参数(如
Ajax.Request 的 parameters
选项)。
值为 undefined
的“键/值”对串行化后只保留了键名称。值为数组的“键/值”对会将数组的每个元素串行化为一个键值对。
所有的值都会使用 JavaScript 原生的 encodeURIComponent
方法获取 URI 编码。
除数组外(数组是按照元素在数组中的顺序进行串行化的),串行化后键值对的顺序并不保证总是一致的 (并且通常情况下查询字符串中键值对的顺序也是无关紧要的)。
样例
$H({ action: 'ship', order_id: 123, fees: ['f1', 'f2'], 'label': 'a demo' }).toQueryString()
// -> 'action=shipℴ_id=123&fees;=f1&fees;=f2&label;=a%20demo'
// 一个空的 hash 是一个空的查询字符串:
$H().toQueryString()
// -> ''
译注:一些特殊值的串行化:
var hash = new Hash({a: 'aa', b: null, c: undefined, d: 'dd'});
hash.toQueryString()
// -> 'a=aa&b;=&c;&d;=dd'
不能再将 Hash.toQueryString(obj)
作为类方法使用,只能作为一个实例方法,或者用
Object.toQueryString 来代替。