成长(9/2000)——面试题合集6

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;
    }
}

你可能感兴趣的:(成长(9/2000)——面试题合集6)