腾讯音乐前端一面凉经
腾讯一面虽然问的都是基础,但是扣的特别细orz
1.dom的事件机制?冒泡和捕获怎么理解?点击li这段代码输出什么?
document.getElementById("div").addEventListener( "click", e => { alert("div"); e.stopPropagation(); }, true ); document.querySelector(".ul").addEventListener("click", e => { alert("ul"); }); document.querySelector(".li").addEventListener("click", e => { alert("li"); //e.stopPropagation(); });
我没答对,我以为是阻止冒泡,结果li都没输出,应该是div就没了
2.js的类型?基础类型和引用类型的区别?哪个在堆哪个在栈?解释一下栈和堆?描述一下大根堆小根堆?
3.闭包是什么?写一个闭包实例?后面给了道闭包的题说答案
var a= 1; function f() { console.log(a); var a = 2; } f();
4.了解的this?给了一道题说答案
var val = 1; var obj = { val : 2, foo() { console.log(this.val) } } var bar = obj.foo obj.foo() bar()
5.call/apply/bind的区别和联系
6.了解前端性能优化吗?说了一些了解的比如http的dom的css的,然后问我GUI加速怎么启动?transform就可以启动吗?
7.了解移动端吗,写过吗?没写过项目,讲了讲rem,然后问我移动端的touch相关的事件,说了下ontouchstart、ontouchmove、ontouchend
8.load和DomContentLoaded的区别?没猜对。。问我理解的白屏时间首屏时间,以及了解渲染性能的参数吗?(不了解)
9.js的错误捕获机制?trycatch有什么缺点?还有什么错误捕获方式?(这个。。)
10.前端的垃圾回收机制?
11.有什么想问的?
大概就这些 但是都很深入实践,然后就比较懵逼
然后一面结束之前给我留了个作业让我发他邮箱
const list = [ {id: 1, name: 'A', parentId: 0}, {id: 2, name: 'B', parentId: 0}, {id: 3, name: 'C', parentId: 1}, {id: 4, name: 'D', parentId: 1}, {id: 5, name: 'E', parentId: 2}, {id: 6, name: 'F', parentId: 3}, {id: 7, name: 'G', parentId: 2}, {id: 8, name: 'H', parentId: 4}, {id: 9, name: 'I', parentId: 5} ]; //转换成下面的形式 //const tree = [ // { // id: 1, // name: 'A', // parentId: 0, // children: [ // { // id: 3, // name: 'C', // parentId: 1, // children: [...] // } // ] // }, // ... //
大概用十分钟写完交了orz,反正挺凉的,腾讯确实难考
#面经##校招##前端工程师##腾讯音乐娱乐#