对于面试还是比较喜欢的,一来可以了解市面上公司所使用的技术栈,二来可以认识到自己的不足。
因为不着急换工作,所以一般先找不太中意的公司进行面试(比如外包)。
直接裸面,不做太多准备,这样对于技术的掌握更有帮助。
总结下近期几场面试,遇到的一些比较有难度的问题。
CSS 篇
1、盒模型
这个问题比较简单,盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。
2、box-sizing
值 | 说明 |
---|---|
content-box | 默认值。内容区宽度,并且任何边框和内边距的宽度都会被增加到最后绘制出来的元素宽度中。 |
border-box | 设置的边框和内边距的值是包含在 width 内的。内容区的实际宽度是 width 减 去(border + padding) 的值。 |
inherit | 指定 box-sizing 属性的值,应该从父元素继承 |
JavaScript 篇
1、深拷贝和浅拷贝
浅拷贝和深拷贝都是只针对于像Object,Array这样的引用类型。
浅拷贝只是拷贝指向原来对象的地址。
深拷贝会创建一个新的内存空间,拷贝的值是一样的,但是内存地址不一样。
比如
let a = [0, 1, 2];
let b = a;
b[1] = 3;
console.log(a) // [0, 3, 2]
console.log(b) // [0, 3, 2]
上述例子实现的就是个浅拷贝,无论修改哪个变量的值,两个变量值都会对应改变。
为了实现两个变量互不影响,需要实现深拷贝。
实现深拷贝
let a = [0, 1,