求职刷题神器

funit.cn

讨论区 > 求职面经 > 北京跟谁学前端工程师实习面经 (含解答思路)

北京跟谁学前端工程师实习面经 (含解答思路)

柠檬斗篷
发布于2021-02-24 15:01:29 33浏览

笔试(给了60min,用来20min):基础的css、html、js问题


面试:


1.图片点开时,比较模糊,然后逐渐变得清晰,我相信大家都遇到过,我一开始没理解他的意思,我说了图片懒加载技术,后面他说他问的不是这个,至于后面他和我说这是png的一种特性,浏览器接收了浏览器的一部分后就会展示图片,当传来数据慢慢增加时,图片当然变得更清晰了


2.hash路由和history路由的区别

当进行路由跳转时,hash路由和history路由都不会进行整个页面的刷新,二者跳转都相当于是在同一个文档中的锚中跳转,所以不会刷新,history需要后端协同,hash路由不需要,但是hash路由跳转时,后端不知道是否跳转,也就是说对后端来说是透明的。


3.题目如下



// url参数解析http://xxx.com/yyy?a=1&b=2&c=3   返回 {a:1,b:2,c:3}
// 我的解答:
let str = 'http://xxx.com/yyy?a=1&b=2&c=3'
const fn = (str) => {
  const result = {}
  const temp = str.split('?')[1].split('&')
  for (let i = 0; i < temp.length; i++) {
    let temp2 = temp[i].split('=')
    result[temp2[0]] = temp2[1]
  }
  return result
}
console.log(fn(str));


4.如下图,如果queryString被编码后怎么转换成中文,我说不知道,但我知道js里面有一个api可以转换,后面知道了,我居然之前写过与这相关的文章,面试时真的sb了,后面知道可以用decodeURIComponent


5.题目如下


// 实现一个模板替换function,例如:输入aaa{{xxx}}bbb{{yyy}}ccc,{xxx:1,yyy:2},返回aaa1bbb2ccc
let str = 'aaa{{xxx}}bbb{{yyy}}ccc'
let obj = { xxx: 1, yyy: 2 }

const fn = (str, obj) => {
  let count = 0
  let temp = ''
  let result = ''
  for (let i = 0; i < str.length; i++){
    if (str[i] === '{') {
      count ++
    }else if (str[i] === '}') {
      count--
      if (count === 0) {
        result += obj[temp]
        temp = ''
      }
    }else if (count === 2) {
      temp += str[i]
    } else {
      result += str[i]
    }
    
  }
  return result
}

console.log(fn(str,obj));


上面内容用来20分钟左右,他觉得可以了,我可以过了,后面发现是校友,我就向他多取了一些经,是一个好人,这也是我选择跟谁学的一个较大的原因吧,有一个好学长在里面。

本文首次发布于趣IT ,转载请注明出处,谢谢合作

北京跟谁学前端工程师实习面经 (含解答思路)

全部评论0

成为第一个评论的人

还可以上传7

表情
热帖排行
热门话题
  1. 518人参与
  2. 240人参与
  3. 153人参与
  4. 96人参与
  5. 25人参与
  • 微信扫码加好友进群