面试题 获取url地址中的参数

261 阅读1分钟

前段时间参加了字节的面试题。有一道笔试题没做出来,但是我记了下来。题目是获取url地址中的参数。Vue中 this.$route.query 非常方便。但用js怎么获取呢?上代码:

  // 获取url地址中参数的值
  function getUrlVariable(variable) {
    // window.location.search 获取当前url地址从问号开始的内容 是个字符串
    // ‘?id=1&name=zhangsan’
    // .substring(1) 把问号截掉
    // ‘id=1&name=zhangsan’
    var query = window.location.search.substring(1);
    // 再以‘&’符号分割为数组
    // ['id=1', 'name=zhangsan']
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
      // 以‘=’分割 得到 ['id', '1']
      var pair = vars[i].split("=");
      // 如果需要获取的参数对应上variable 就返回结果
      if (pair[0] == variable) { return pair[1]; }
    }
    return (false);
  }
  
  getUrlVariable(id) // 1