跳至主要內容

yyshino大约 6 分钟FrontEnd面经

我的面经

兴盛优选一面

  1. 自我介绍

  2. BFC(回答的不是很好)

  3. Flex布局

  4. 场景题(有一个父容器它的高度固定的,它有两个子元素,然后父元素设置了flex布局,然后主轴的方向是垂直的也就是从上往下布局,第一个容器的高度是固定的,要想第二个容器撑满整个父容器)

  5. CSS定位

  6. JS基本类型(symbol需要了解)

  7. 闭包(需要更加巩固一下,不够清晰)

  8. 原型链(把自己绕晕了 (T▽T) )

  9. 讲一下Promise

    • Promise如何变成同步的
    • 使用async await后如何捕获异常
    • async await后返回的还是一个Promise对象吗(Promise resolve的值)
  10. HTML标签的语义化(又忘了就说了几个 (T▽T) )

  11. 行内元素和块级元素的区别( 不够深入了解 )

  12. 协商缓存和强缓存

  13. script标签上有哪些属性(英语差也暴露了,刚开始没听出来 (T▽T) ,就记得一个src)

  14. JS基础类型和引用类型在存储方式上的区别

    1. 赋值时会产生什么问题
    2. 如何解决这个问题(深拷贝)
    3. JSON.parse(JSON.stringify(obj))的缺点
    4. lodash有使用过吗(没有了解过 (T▽T))
    5. 深度克隆函数如何实现(没有了解过 (T▽T))
  15. 讲一下你所了解的ES6新增的一些特性(好多都忘了(T▽T))

  16. 箭头函数有什么特性

    1. 它没有this那么它的this指向的是谁(需要深入了解)
    2. function的this指向谁()
  17. bind apply call ()

  18. 讲一下ES6的类

    1. 怎么定义一个类
    2. ES6继承
    3. ES5有哪些继承方式
  19. JS的事件循环(这个名词不记得了(T▽T),后来面试官提醒宏任务微任务,感谢面试官!)

    1. 除了Promise外还有什么可以创建微任务吗
  20. 现在主要用的是Vue2还是Vue3(到Vue了)

  21. Vue2 Vue3的区别

  22. 你更喜欢使用哪一个版本(刚开始说Vue3)

    1. 你就讲一下你的个人想法((T▽T))
  23. v-model这个语法糖如何实现 ((T▽T)没有具体了解)

  24. 讲一下Vue2的响应式((T▽T)有点呆把自己暴露了)

  25. Vue3的响应式

    1. 解决了Vue响应式的那些弊端
    2. 怎么动态改变数组的值不会被监听到(通过修改数组下标的方式来修改响应式的值能够触发响应式吗)
    3. 重写了那些方法来实现对数组的修改
  26. 对Vue3的响应式Proxy有了解过吗(没有(T▽T))

  27. 讲一下Vue父子组件的传值(语言组织的不是很好,瞎扯了好多,面试官建议;父组件向子组件传值通过props,子组件向父组件传值通过$emit)

  28. git有哪些方法,git用的多吗

    1. 场景题:现在有一个远程分支0.1.0,你们两个人同时在这个分支上开发,然后你在你的本地0.1.0上有一些变更,但是呢你的另一个伙伴在这个分支也有一些变更,同时它已经推到远程去了,这个时候你想把远程的0.1.0拉下来但是呢本地的0.1.0你又想保存下来,你会这么做?
    2. git的暂存是哪个命令(没了解(T▽T),git stash)
  29. 你平常是怎么来学习的?

  30. 我看你的简历上有用到Vite吧(没听出来,又暴露了英语)

  31. Webpack和Vite最大的区别

  32. 为什么Vite更加快(打包工具没有具体了解(T▽T))

  33. ES Build有了解过吗(打包工具没有具体了解(T▽T))

  34. Nginx配置跨域()

  35. 跨域的响应头

  36. 假设我现在只想要get、post这两个请求跨域,应该如何设置()

  37. 你有什么想问我的?

补充

BFC

JS基本类型(symbol需要了解)

闭包(需要更加巩固一下,不够清晰)

原型链(把自己绕晕了 (T▽T) )

HTML标签的语义化(又忘了就说了几个 (T▽T) )

行内元素和块级元素的区别( 不够深入了解 )

script标签

  1. src 这个属性定义引用外部脚本的 URI,这可以用来代替直接在文档中嵌入脚本。指定了 src 属性的 script 元素标签内不应该再有嵌入的脚本。
  2. type 该属性定义 script 元素包含或src引用的脚本语言。
  3. text 和 textContent 属性类似,本属性用于设置元素的文本内容。
  4. defer 这个布尔属性被设定用来通知浏览器该脚本将在文档完成解析后,触发 DOMContentLoadedopen in new window 事件前执行。
    1. 警告: 如果缺少 src 属性(即内嵌脚本),该属性不应被使用,因为这种情况下它不起作用。defer 属性对模块脚本没有作用 —— 他们默认 defer。
  5. async
    1. 对于普通脚本,如果存在 async 属性,那么普通脚本会被并行请求,并尽快解析和执行。
    2. 对于模块脚本open in new window,如果存在 async 属性,那么脚本及其所有依赖都会在延缓队列中执行,因此它们会被并行请求,并尽快解析和执行。
    3. 该属性能够消除解析阻塞的 Javascript。解析阻塞的 Javascript 会导致浏览器必须加载并且执行脚本,之后才能继续解析。defer 在这一点上也有类似的作用。
  6. crossorigin 那些没有通过标准CORS (en-US)open in new window检查的正常script 元素传递最少的信息到 window.onerroropen in new window。可以使用本属性来使那些将静态资源放在另外一个域名的站点打印错误信息。

lodash有使用过吗(没有了解过 (T▽T))

深度克隆函数如何实现(没有了解过 (T▽T))

讲一下你所了解的ES6新增的一些特性(好多都忘了(T▽T))

它没有this那么它的this指向的是谁(需要深入了解)

v-model这个语法糖如何实现 ((T▽T)没有具体了解)

讲一下Vue2的响应式((T▽T)有点呆把自己暴露了)

对Vue3的响应式Proxy有了解过吗(没有(T▽T))

讲一下Vue父子组件的传值(语言组织的不是很好,瞎扯了好多,面试官建议;父组件向子组件传值通过props,子组件向父组件传值通过$emit)