前端笔试遇到的两个编程题

发布时间 2023-04-08 17:45:08作者: 满城衣冠

倒计时:

在倒计时不超过一天的代码

var hour = document.querySelector(".hour");
    var minute = document.querySelector(".minute");
    var second = document.querySelector(".second");
//截止的时间
    var inputTime = +new Date("2023-4-08 20:00:00 ");
//我们先调用countDown函数,可以避免在打开界面后停一秒后才开始倒计时
    countDown();
    setInterval(countDown, 1000);

    function countDown() {
      var nowTime = +new Date();
      var times = (inputTime - nowTime) / 1000;
      var h = parseInt((times / 60 / 60) % 24);
      var m = parseInt((times / 60) % 60);
      var s = parseInt(times % 60);
      hour.innerHTML = h < 10 ? "0" + h : h;
      minute.innerHTML = m < 10 ? "0" + m : m;
      second.innerHTML = s < 10 ? "0" + s : s;
    }
 
天数的那种:
var day=document.querySelector(".day")
var hour = document.querySelector(".hour");
    var minute = document.querySelector(".minute");
    var second = document.querySelector(".second");
//截止的时间
    var inputTime = +new Date("2023-4-08 20:00:00 ");
//我们先调用countDown函数,可以避免在打开界面后停一秒后才开始倒计时
    countDown();
    setInterval(countDown, 1000);

    function countDown() {
      var nowTime = +new Date();
      var times = (inputTime - nowTime) / 1000;
  var h=parseInt(times/60/60/24)
      var h = parseInt((times / 60 / 60) % 24);
      var m = parseInt((times / 60) % 60);
      var s = parseInt(times % 60);
      hour.innerHTML = h < 10 ? "0" + h : h;
      minute.innerHTML = m < 10 ? "0" + m : m;
      second.innerHTML = s < 10 ? "0" + s : s;
   day.innerHTML = d < 10 ? "0" + d : d;
    }
 
取url

 

 

  const url =
        "https://www.baidu.com/m?f=8&ie=utf-8&rsv_bp=1&tn=monline_3_dg&wd=session";
function queryURLparams(url){
      let obj = {};
      if (url.indexOf("?") < 0) return obj;
      let arr = url.split("?");
      let urlcopy = arr[1];
      let array = urlcopy.split("&");
      for (var i = 0; i < array.length; i++) {
        let arr2 = array[i];
        let arr3 = arr2.split("=");
        obj[arr3[0]] = arr3[1];
      }
      return obj
}
  • 正则匹配规则 /([^?=&]+)=([^?=&]+)/g
  • 利用replace替换
  • 用伪数组进行键值对拼接
function queryURLparamsReg(url)
{
  let obj={}
  let reg=/([^?=&]+)=([^?=&]+)/g
url.replace(reg,function()
{
obj[arguments[1]]=arguments[2]
})
return obj
}

es6的 …arg

其实和arguments差不多 ,就是arguments是伪数组,…arg是真数组

function queryURLparamsRegEs6(url) {
let obj = {}
let reg = /([^?=&]+)=([^?=&]+)/g
url.replace(reg, (...arg) => {
obj[arg[1]] = arg[2]
})
return obj

}