面试基础题总结

一、['1','2','3'].map(parseInt) 结果是 [1, NaN, NaN]

首先原式子可解析为 ['1','2','3'].map(item ,index =>{parseInt(item,index)})parseInt(string,index) 第一个表示字母(大小写均可)、数组、特殊字符(不可放在开头,特殊字符及特殊字符后面的内容不做解析)的任意字符串,第二个表示解析字符串的基数为2到36之间,例如parseInt(10,2) 等于2,因为10转换成二进制为2。parseInt(100,2)等于4也是同理。

所以['1','2','3'].map(parseInt) 可分解为 parseInt(1,0) ,parseInt(2,1) ,parseInt(3,2) 所以后两个为NAN

二、函数的节流和防抖

函数节流是指在指定时间间隔内只能执行一个任务,函数防抖则是任务在频繁触发时,任务触发时间超过间隔时间才会执行。

函数节流可用定时器以及fn.apply(this,arguemnet)方法来实现

函数防抖则是用定时器,在本函数内先清除原有定时器,然后设置定时器,到了指定时间自然会触发请求,未到时间再次触发本函数,清除原有定时器,再触发新的定时器。

三、WeakSet弱引用,只能存放对象与set相似,在节点保存上,删除dom,WeakSet也可以自行删掉内存,不容易造成内存泄漏,且不能遍历

四、es6的class属性,声明一个对象,但是无法做到提升,所以必须先class声明然后再实例化对象,class方法无法被枚举 例如object.keys(foo.prototype)

你可能感兴趣的:(面试基础题总结)