js 面试题

417 阅读1分钟
  1. 给定一个数组,请输出一个随机排序的数组

  2. 字符串反转. eg: "I am a student!"

  3. 函数接收1...n个无复重数组作为参数。求这些数组的交集

  4. 给定两个对象 obj1 = {nane : '李明' , age : 20} obj2 = {age : 20 , name : '李明' },他们JSON.stringify后的结果是一样的吗? 请写一个stringify的函数,要求,对于key vlaue一样的对象,要求输入字符串一致。

  5. 给一个函数 resize , 要求

    • 实现当用户缩放浏览器时,每500ms 最多只调用一次该函数
    • 实现当用户停止缩放浏览器500ms后,调用一次该函数。
  6. 请实现一个promise接口请求函数。成功调用resolve,失败则重试三次后,调用reject;

笔试

  1. 字符串与Array.prototype.map()
function toString(map){
   return Object.keys(map)
   
       .map( ___________________________________________________ )
       .join('&');
}
toString({a:1 , b:2 , c:3}) // a=1&b=2&c=3

  1. 字母排序 与 Array.prototype.sort()
function sort(str){
   return str.split('')
   
       .sort((a,b)=> ________________________________________________ )
       .join('');
}
sort('LeBronJames') // sronmeeaLJB

  1. 正则表达式 与 String.prototype.replace()
function camel2snake(str){

   return str.replace( _________________________ , match => ________________________ )
}
camel2snake('fateStayNight'); // -> fate_stay_night

  1. 数组扁平化
function flattenDeep(list){
   var flattenArr = [];
   for(var item of list){
   
       if( ____________________________________________ ){
           flattenArr.push(item);
       }else{
       
   		____________________________________________
       }
   }
   return flattenArr;
}
flattenDeep([1 , [ 2 , [ 3 , [4] , 5]]]); // [1,2,3,4,5]

  1. 统计单词出现的次数
function count(list){
   const map = new Map();
   for(var str of list){
       if(__________________________________){
       
           ___________________________________________
       }else{
           ___________________________________________
       }
   }
   return Object.fromEntries(map);
}
count(['a' , 'a' , 'b' , 'c' , 'b' , 'a']); // {a:3 , b:2 , c:1}