const getQueryByName = (name) => { const query = new URLSearchParams(location.search) return decodeURIComponent(query.get(name)) } // url: https://example.com/?ref=baidu&agent=chrome const ref = getQueryByName('ref') // baidu const agent = getQueryByName('agent') // chrome const timestamp = getQueryByName('timestamp') // null
1. const query = new URLSearchParams(location.search);
创建URLSearchParams
对象。
URLSearchParams
是Web API
的一部分,用于操作 URL 的查询字符串。
location.search
返回当前 URL 的查询字符串(例如?ref=value&key=value
)。
URLSearchParams
对象将其解析为一个可以操作的查询参数对象。
2. decodeURIComponent(query.get(ref));
query.get(ref)
方法从查询参数对象中获取名称为ref
的参数值。
decodeURIComponent
用于对参数值进行解码,以确保返回的值是一个人类可读的字符串,避免URL编码带来的问题(例如%20
代表空格)。