字节今日头条前端日常实习面试(凉经)
一面 11.18 18:00
项目中遇到什么困难:
说到自己是怎么优化的 说了防抖, 所以手写防抖
看代码写输出 事件循环的题
async function async1() { console.log("async1 start"); await async2(); console.log("async1 end"); } async function async2() { console.log("async2"); } console.log("script start"); setTimeout(function() { console.log("setTimeout"); }, 0); async1(); new Promise(resolve => { console.log("promise1"); resolve(); }).then(function() { console.log("promise2"); }); console.log('script end') // 答案 script start async1 start async2 promise1 script end async1 end promise2 setTimeout问:平常用什么写异步比较多 答:async/awiat so 手写定时器 3m 用async和await + setTimeout
二面 11.22 17.00
先聊了会天... 自我介绍;现在大三有时间实习吗;怎么学习前端的
-
了解css预处理器吗? less sass啥的
-
px em rem 的区别 em是相对于父元素的font-size rem是相对于根元素font-size 根元素是什么? html
-
了解position哪些属性
-
(讲到了sticky) sticky定位使用场景 (返回文档最顶部按钮)
-
你说你熟悉es6 讲一下有哪些新特性
-
既然有数组了为啥还要set? map和object的区别 (Object只能拿字符串当键)? class是es6新创立的一个模块吗?(大概意思是class是不是新的... 不太懂 记得好像看过 但忘了..)(可以看作一个语法糖,它的绝大部分功能,ES5 都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。 ES6 的类,完全可以看作构造函数的另一种写法。)
-
除了vue了解其他框架吗
-
讲一下vue的生命周期 在哪个钩子就可以取到data属性 哪个钩子可以取到dom元素 destroyed钩子可以用来做哪些事(说了可以用来remove掉监听器)
-
问了vue-router有哪些模式 hash模式和 history模式 讲一下实现原理?
-
讲一下vue组件间通信
-
如果组件间非常复杂怎么处理 vuex
-
-
讲一下vuex有哪些模块吧
-
了解vue3吗 和 vue2有哪些不同 (不太会.. 讲了下vue3更贴合原生js写法 以及数据绑定的实现不同)
-
讲一下虚拟dom 虚拟dom这个js对象里是什么?(最少包含标签名 (tag)、属性 (attrs) 和子元素对象 (children) 三个属性)
-
项目中登陆功能怎么实现 除了token还可以用什么 cookie
-
http状态码
-
讲到了 304 你知道304是什么吗?
-
讲一下浏览器渲染机制? etag是什么?
-
TCP/IP 四层模型讲一下? (我记得不应该是五层吗?)
-
tcp udp属于哪一层 讲一下区别 讲一下应用场景
或许还有啥...脑袋太懵了想不太起来了...
手写
实现一个render函数let template = "this is {{name}} and I'm {{age}} years old and i'm {{sex}}"
let data = {
name: 小明,
age: 18,
address: BeiJing
}
实现render(template, data) 使得打印出 "this is 小明 and I'm 18 years old and i'm undefined"
3
1 3
2 3 类似于计算出312+333 并打印出路径