js的运行机制
- js是单线程的。(和用户的操作、用途有关;同一时间做同一事情)
arguments对象是什么
- arguments是函数参数的集合,它是类数组,有length属性,但没有数组的方法;箭头函数没有arguments对象
- 如何将arguments转化为数组?
1.ES6的扩展运算符可以,这根ES6中新增的iterater函数有关
2.ES6中的Array.form()
3.ES5的Array.prototy.slice.call(arguments)
为什么在调用这个函数时,代码中的‘b’会变成一个全局变量?
function fun() {
let a = b = 0; //let a = ( b = 0 )
//函数赋值至右向左
}
哪些操作会造成内存泄漏
- 闭包
- 意外的全局变量
- 被遗忘的定时器
- 脱离dom的引用
手写map函数
function map (arr, mapCallback) {
//检验参数
if ( !Array.isArray(arr) || !arr.length || !typeof mapCallback
== 'function') {
return [];
} else {
let result = [];
for (let i=0, len = arr.length;i < len ; i++) {
result.push(mapCallback(arr[i], i, arr));
}
return result;
}
}