「前端」百度小度云一面面经
总得来说面试体验还可以,面试官一开始问了项目上的一些实现,看来是真的看了我的项目;手撕一道队列实现一道防抖,都很简单,就是防抖写起来还是不太熟练,需要更熟练一点;css还是有待加强
-
一开始问了一些项目上的东西,比如某个部分是如何使用flex进行布局的
-
讲讲 html5 有哪些新特性?
- 就答出来图片懒加载和语义化标签
- 还有新的表单控件和属性:如email、url、number等输入类型,required、step等表单属性
- 多媒体支持,如audio和video标签
- 新的图形和多媒体API,如Canvas、WebGL、SVG
- 本地存储和离线支持:LocalStorage, SessionStorage
-
讲讲css中选择器的优先级
- 内联样式>ID选择器>类选择器>标签选择器,在复合选择器场景下通过加法运算决定优先级
-
讲讲css中的盒模型
-
css中定义元素的高度和宽度两个属性,包括的是盒模型的哪个部分
- 答的是border及内部的东西
- 其实是content区,不包含padding及以外的部分
-
讲讲css中的两种盒模型,你知道如何切换吗?
- 没讲出来,我说不熟悉IE盒模型
- 应该通过box-sizing: border-box/ content-box来切换
- 我说怎么问IE盒模型来着,原来我前面答的是IE盒模型的定义
-
聊聊flex布局
- 聊了flex布局出现以前居中的困难
- 聊了 flex 布局中的主轴和交叉轴以及其对齐方式
- 然后聊了常用的属性flex-1 flex-0 和 flex-auto的差别
-
聊聊ES6相关语法
- 箭头函数、class语法糖、ES Module
- 在我的引导下还说了一些新提案,比如管道运算符、可以在顶层写await之类的
- 可以补充的点:let, const、模板字符串、解构赋值、默认参数、展开运算符、Symbol、Promise
-
聊聊js中的数据类型
- 聊了基本类型和对象类型,结果基本类型存储在栈上,引用类型存储在堆上说反了干
-
js中的变量声明方式?
- 之前使用var,现在使用let和const
-
let和const有什么区别?
- 前者声明变量,后者声明常量
-
你对变量作用域有什么了解吗?
- 跟原型链类似,js中存在作用域链,尝试访问变量的时候总是从最近的作用域查找,如果查找不到就逐层向上查找
-
讲讲this在不同上下文的指向?
- 箭头函数没有自己的this,其this的指向由定义时所处的上下文决定。而对于传统函数,this的指向则是运行时确定的,可被bind、call、apply等方法改变
-
代码解析题(大概是这样吧)
var a = 2; function func() { console.log(this.a); } function obj() { this.a = 1; this.func = func; } var foo = new obj(); foo.func();
这段代码应该输出什么?应该输出1,因为通过对象调用,this会指向对象
-
聊聊数据结构?
-
手写一个队列,实现push pop top clear isEmpty getLength
- 直接用数组实现就完了
-
手撕防抖函数
- 虽然提前准备到了,但还是面试官提示了一点才写出来的