[小米一面(50min)
自我介绍
内联元素和块级元素的区别
盒模型相关问题,具体不大记得了,margin、width和height百分比时的参照物等等等等,到这里答得都不大好,css比较薄弱有点裂开
js变量类型:值类型、引用类型,分两类列了一遍
追问值类型和引用类型有什么区别:存储方式,堆栈模型
为什么typeof(null)返回object:前面自己说null的时候说的有点含糊...这里被问懵了,我说null在存储时指向一个空指针,和面试官稍微交流了下
从输入url地址到页面渲染全过程:经典题目,八股文开背;说到TCP三次握手的时候面试官没忍住笑了下,气氛一下轻松了哈哈哈,应该是看出来有准备过面经,我也就讲的比较轻松了
追问缓存机制相关问题:强制缓存、协商缓存
好像还简单问了cookie、session,有点记不清了
说说对js闭包的理解:简答了闭包的概念,说了函数作为参数被传入、作为返回值 两种形成闭包的方式
追问闭包的应用:简单说了个隐藏数据,没再追问
聊聊跨域:这块非常薄弱,先扯开说了下同源策略,然后说自己知道jsonp、cors,没啥实操经验
追问跨域:对我之前项目没有碰到跨域问题非常惊讶哈哈哈哈,然后就没再深问了
笔试题1:求输出值,追问为什么
1
2
3
4
5
6
7
8
9
10
11
var b = 1;
function outer() {
var b = 2
function inner() {
b++;
var b = 3;
console.log(b)
}
inner();
}
outer();
笔试题2:this指向相关的问题,求输出,这题有点看不懂语法答错了,但是说了下this指向的原则啥的
1
2
3
4
5
6
7
8
9
10
11
12
var length = 10;
function fn() {
console.log(this.length);
}
var obj = {
length: 5,
method: function () {
fn();
arguments0;
}
}
obj.method(fn, 1);
笔试题3:面试官说我对this还有点理解,那就再来一题this的...这题是不同的this指向优先级的问题,懵对了结果但是没答出优先级,老哥非常友好的和我解释了为啥
1
2
3
4
5
6
7
8
9
var b = 10
function fn() {
console.log(this.b)
}
c = {
b: 11,
fn: fn.bind(window)
}
c.fn()
笔试题4:手写实现数组flat方法,写了10分钟左右没写出来,写了个大概的递归思路,和面试官交流了下就放我过了
1
2
3
4
5
6
数组的flat方法
function flat (array, deep) {}
let a = [1,[2,3, [2,1]], 2]
flat(a, 1)
[1,2,3,[2,1], 2]
会使用git吗:回答会,基本操作都熟悉,然后面试官说 好,那就不问你git问题了,我给整乐了哈哈哈哈
webpack熟悉吗:emm用过vue-cli但是不了解webpack具体配置,面试官:"没事别慌,这是附加题"
简单问了一些vue相关的问题,记不大清了,只记得问了生命周期,computed作用,都是比较基础的
es6的新特性,有多少说多少:答得不大行
反问:组内工作;面试里的不足
](https://www.nowcoder.com/discuss/589622?type=post&order=time&pos=&page=1&channel=-1&source_id=search_post_nctrack)