面试题之 query转为obj

要注意处理编码后的字串  对于a=123要得到number形的值

function parseQueryString(url) {
  var obj = {};
  var query = url.search.slice(1).split('&'); //截取问号之后的部分
  query.forEach(function(item){
      //若str没有= 返回 [str]
      //缺失任何一方 则是空字符串
      var key = item.split('=')[0];
      var value = decodeURIComponent(item.split('=')[1]);
      //对于数值形字符串要转为数字
      value = !isNaN(value) ? +value : value;
      obj[key] = value;
  });
  return obj;
}
var link = document.createElement('a');
link.href = "http://www.example.com/some/path?name=123&w=blog%3Acart55free99%20微软%20bootstrap#anchor";
var obj = parseQueryString(link);
console.log(obj);

没有直接创建localtion对象的方法  可以创建Anchor的方式来创建一个localtion对象

var link = document.createElement('a');
link.href = "http://www.example.com/some/path?name=123&w=blog%3Acart55free99%20微软%20bootstrap#anchor";
原文地址:https://www.cnblogs.com/cart55free99/p/4381093.html