前端拼多多一面(凉经)

238 阅读1分钟

问题

  1. 自我介绍
  2. 写输出
// a.js
console.log(1)
// b.js
console.log(2)
// c.js
console.log(3)

<!DOCTYPE html>
<html>
  <script src="./a.js" refer='refer' />
  <script src="./b.js" async='async' />
  <script src="./c.js" />
  <style 'console.log(4)' />
  <body>
    <script>
      console.log(5)

      document.addEventListener('load', () => {console.log(6)})

      document.addEventListener('DOMContentloaded', () => {console.log(7)})
      let i = 0
      while(i < 9999) {
        i++
      }
      console.log(8)
    </script>
  </body>
</html>
  1. css的flex布局:
<div class='container'>
      <div class='head' />
      <div class='main' />
      <div class='footer' />
    </div>
  • head固定高度,main和footer自适应,占满整个屏幕
  • footer固定在底部
  • 。。。
  1. 用useEffect实现一个钩子函数,实现和useEffect类似功能,但是第一次渲染不执行回调函数(细节: return)

const asyncFn = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('success')
  }, Math.random() < 0.5 ? 1500 : 500)
})

const fn = (cbk, timeout) => {

}

fn(asyncFn, 1000).then(console.log, console.error)

// 执行时间是500ms时,打印success,
// 执行时间是1500ms时,输出错误
  1. 阶乘(细节: 判断正整数, 优化:时间复杂度)