前端面试——那些年踩过的炸弹!

前段时间面试(包括阿里巴巴的电话面试),遇到过一些试题,且面试中出现机率较高的提问/笔试,有些答的不是很好挂掉了,今天终于有时间整理出来分享给大家,内容主要分为两部分:面试中遇到的、在复习过程中看到认为值得加深巩固的; 如有理解的错误或不足之处,欢迎留言纠错。

前端面试——那些年踩过的炸弹!

Javascript篇

1.请将下列b函数进行修改,保证每次调用a都能+1(考闭包):前端面试——那些年踩过的炸弹!
2.js有哪些基本数据类型:

ECMAScript 标准定义有7种数据类型:

Boolean

Null

Undefined

Number

String

Symbol :(ECMAScript 6 新定义 ,Symbol 生成一个全局唯一、表示独一无二的值)

Object :(Array、Function、Object)

3.用js将 386485473.88 转换为 386,485,473.88(千位分割符):前端面试——那些年踩过的炸弹!
4.js的 for 跟for in 循环它们之间的区别?

遍历数组时的异同: for循环 数组下标的typeof类型:number, for in 循环数组下标的typeof类型:string前端面试——那些年踩过的炸弹!
遍历对象时的异同:for循环 无法用于循环对象,获取不到obj.length; for in 循环遍历对象的属性时,原型链上的所有属性都将被访问,解决方案:使用hasOwnProperty方法过滤或Object.keys会返回自身可枚举属性组成的数组。前端面试——那些年踩过的炸弹!
5.给table表格中的每个td绑定事件,td数量为1000+,写一下你的思路(事件委托题):前端面试——那些年踩过的炸弹!
6、js把一串字符串去重,列出你的思路(两种以上):
前端面试——那些年踩过的炸弹!
前端面试——那些年踩过的炸弹!
你对重绘、重排的理解?

首先网页数次渲染生成时,这个可称为重排;

修改DOM、样式表、用户事件或行为(鼠标悬停、页面滚动、输入框键入文字、改变窗口大小等等)这些都会导致页面重新渲染,那么重新渲染,就需要重新生成布局和重新绘制节点,前者叫做"重排",后者"重绘";

减少或集中对页面的操作,即多次操作集中在一起执行;

总之可以简单总结为:重绘不一定会重排,但重排必然为会重绘。

我是一名从事了5年前端的程序员,辞职目前在做讲师,今年年初整理了一份适合2019年学习的web前端干货,从最基础的HTML+CSS+JS到移动端HTML5到各种框架都有整理,免费送给每一位前端小伙伴,这里是小白聚集地,欢迎初学和进阶中的小伙伴。"
加卫星:qianduan8899前端面试——那些年踩过的炸弹!