天天看点

两道Javascript-前端面试题

第一题

请完成一个函数,接受字符串str,返回一个相对应的json对象。(例如str=”aa.bb.cc”,函数返回{“aa”:{“bb”:{“cc”:{}}}} )
function getJson(str) {
  let strArr = str.split('.');
  let getObj = function(obj, index) {
    obj[strArr[index]] = {};
    if (index !== strArr.length - ){
      getObj(obj[strArr[index]], ++index);
    }

    return obj;
  };

  let obj = getObj({}, );

  return obj;
}
           

第二题

假设已知一个函数

function isPass() {

return true/false;

}

请完成函数function X() {…}

使得当我在main函数中调用X()时,在控制台打印出这样的一段话

try to run isPass for 1 times, fail, wait for 10 seconds to try again…

try to run isPass for 2 times, fail, wait for 15 seconds to try again…

try to run isPass for 3 times, fail, wait for 20 seconds to try again…

try to run isPass for n times, succeed, over!

function x() {
  var times = arguments[] || ;
  if(isPass()) {
    console.log(`try to run isPass for ${times} times, succeed, over!`);
  } else {
    console.log(`try to run isPass for ${times} times, fail, wait for ${ + times * } to try again...`);
    setTimeout(() => {
      times++;
      x(times);
    }, ( * times) * );
  }
}

function isPass() {
  return true/false;
}

function main() {
  x();
}

main();
           

继续阅读