2022-10-08大厂面经00

贝壳找房面试

  • 非常偏实际应用,对问题很考验综合思考能力。
  • 面试官素质不错,特别是二面,不会的还会告诉我答案=,=,真的是去学知识了。
  • 可惜对本菜🐔来说真是史诗级难度了。

一面

自我介绍,问项目
css问题,有a,b,c三个块标签,样式定义如下,说出真实布局情况。如果是acb呢?
<body>
<div id="a">a</div>
<div id="b">b</div>
<div id="c">c</div>
</body>
#a {
    position: relative;
    width:100px;
    height:100px;
}
#b {
    postiton:absolute;
    width:100px;
    height:100px;
}
#c {
    position: relative;
    width:100px;
    height:100px;
    top: 0;
    left: 0;
}
fixed定位是什么意思,父级标签设置什么可以让子标签fixed定位失效?

答案:transform

js问题,打印a,b的值
var a = [1, 2, 3];
var b = a;
b[5] = 6;
为什么上一题的a,b会相等,如何让他们不等,尽可能的想出多的方法?
b = [...a];
b = a.map(item => item);
b = [].concat(a);
那么问题来了,es6的[...a]和es5的[].concat(a)哪个效率高?
代码题,如何实现深拷贝,考虑正则,函数,循环引用等情况。
跨域有哪些方法? jsonp的原理是啥,cors的原理是啥?
cors的简单请求和复杂请求?
打开chrome调试器,有时候一个请求会有两条记录,第一条是option,这是什么原因?
常用的http请求方法有哪些?什么情况下会用option方法?
输入一个url,浏览器是怎么处理的?主要考强缓存和协商缓存?expires和cache-control哪个优先级高,cache-control有哪些值,分别表示什么?
http是无状态的吗? 那是如何保存用户信息的? cookie和session的区别是啥? token又是啥?
状态码200,301,302,304分别表示什么? 301和302的主要区别是啥?302的原理又是啥?
echarts和d3的优劣势是啥?面对实际问题的时候如何选择?
用canvas生成一个海报,海报中有5行文字,超过5行用...表示,注意,不是操作dom,也用不了css样式,如何实现呢?
用canvas画图,实现一个小球拖拽,记住,不是操作dom,如何实现呢?
有什么你会的,我没有考到的吗?
2022-10-08大厂面经00

Bigo 面试记录

一面

  • 时长: 25分钟
自我介绍
1. 输出运行结果
var name = 'weihui';
(function() {
    if (typeof name === 'undefined') {
        var name = 'bigo';
        console.log('good' + name);
    } else {
        console.log('Hello ' + name);
    }
})()
2. 输出结果
var arr = [];
var obj = {a: 1};
arr.push(obj);
console.log(arr);
obj.a = 2;
console.log(arr);
var obj1= obj;
obj = {a: 3};
console.log(arr);
obj1.a = 4;
console.log(arr);
2022-10-08大厂面经00

字节跳动面试

hr面

实习期间最大的收获?最大的遗憾?
未来的职业规划?
对团队的评价如何?
mentor是谁?评价如何?
再次入职时,会如何改进自身的不足?
有哪几个offer,最终如何考虑?
2022-10-02JavaScript00

JavaScript 进阶问题列表

从基础到进阶,测试你有多了解 JavaScript,刷新你的知识,或者帮助你的 coding 面试!

答案在问题下方的折叠部分,点击即可展开问题。祝你好运


1. 输出是什么?
function sayHi() {
  console.log(name)
  console.log(age)
  var name = 'Lydia'
  let age = 21
}

sayHi()
  • A: Lydiaundefined
  • B: LydiaReferenceError
  • C: ReferenceError21
  • D: undefinedReferenceError
答案

答案: D

在函数内部,我们首先通过 var 关键字声明了 name 变量。这意味着变量被提升了(内存空间在创建阶段就被设置好了),直到程序运行到定义变量位置之前默认值都是 undefined。因为当我们打印 name 变量时还没有执行到定义变量的位置,因此变量的值保持为 undefined

通过 letconst 关键字声明的变量也会提升,但是和 var 不同,它们不会被初始化。在我们声明(初始化)之前是不能访问它们的。这个行为被称之为暂时性死区。当我们试图在声明之前访问它们时,JavaScript 将会抛出一个 ReferenceError 错误。


2. 输出是什么?
for (var i = 0; i < 3; i++) {
  setTimeout(() => console.log(i), 1)
}

for (let i = 0; i < 3; i++) {
  setTimeout(() => console.log(i), 1)
}
  • A: 0 1 20 1 2
  • B: 0 1 23 3 3
  • C: 3 3 30 1 2
答案

答案: C

由于 JavaScript 的事件循环,setTimeout 回调会在遍历结束后才执行。因为在第一个遍历中遍历 i 是通过 var 关键字声明的,所以这个值是全局作用域下的。在遍历过程中,我们通过一元操作符 ++ 来每次递增 i 的值。当 setTimeout 回调执行的时候,i 的值等于 3。

在第二个遍历中,遍历 i 是通过 let 关键字声明的:通过 letconst 关键字声明的变量是拥有块级作用域(指的是任何在 {} 中的内容)。在每次的遍历过程中,i 都有一个新值,并且每个值都在循环内的作用域中。


2022-10-02大厂面经00

一面

  1. 自我介绍
  2. css水平垂直居中有哪些方法
  3. 伪类伪元素哪些
  4. not :last-child 具体指什么
  5. 说说 http 缓存
  6. cookie,sessionstorage,loaclstorage区别,哪个可以多页面访问
  7. 数组常用的api有哪些
  8. code:求1-n内的所有质数
  9. 说说useBoolean
  10. react函数和类式组件的区别
  11. webpack的打包流程
  12. 知道哪些前端的性能优化
  13. 实习的成长?
  14. 如何扩充自己的知识面
  15. 为什么选前端
  16. 反问