美文网首页
JS面试常见问题汇总

JS面试常见问题汇总

作者: 暴走的毛驴 | 来源:发表于2020-02-24 19:31 被阅读0次

1、闭包

  • 什么是闭包?

闭包就是可以访问另一个函数作用域中的变量的函数。

闭包的作用域链包含着它自己的作用域,以及包含它的函数的作用域和全局作用域。
通常,函数的作用域及其所有变量都会在函数执行结束后被销毁。但是,在创建了一个闭包以后,这个函数的作用域就会一直保存到闭包不存在为止

  • 创建闭包的常见方式
    在一个函数内部创建另一个函数
function fun(){
  var a = 1;
  return function(){
    return a;
  }
}
var m = fun();
console.log(m()); // 1

外部函数调用之后其变量对象本应该被销毁,但闭包的存在使我们仍然可以访问外部函数的变量对象

  • 闭包只能取得包含函数中任何变量的最后一个值
function fun(){
  var arr = [];
  for(var i=1;i<10;i++){
    arr[i] = function(){
      return i;
    }
  }
   return arr;
}

arr数组中包含了10个匿名函数,每个匿名函数都能访问外部函数的变量i,i=10

  • 闭包作用
    创建私有变量和方法 避免全局污染
    可以间接调用函数内部的局部变量。
    可以让这些变量的值始终保持在内存中。(因此要注意不能滥用闭包)

2、箭头函数和普通函数的区别?

  • this
    箭头函数没有this,它的this是继承来的,默认指向定义它的时候的对象
    普通函数指向的是它的直接调用者。没找到直接调用者,则this指向 window
let obj = {
        a: 1,
        b: () => {
            console.log(this.a); // undefined
        },
        c: function() {
            console.log(this.a); // 1 
        },
    };
obj.b();
obj.c();

这里通过obj.b(),此时this指向的window对象,上面没有a,所以返回undefined。通过obj.c(),this指向的是它的直接调用者,就是obj,所以返回1。

  • 箭头函数是匿名函数,不能作为构造函数,不能使用new
  • 没有原型prototype
  • 不可以使用arguments对象

相关文章

  • JS面试常见问题汇总

    1、闭包 什么是闭包? 闭包就是可以访问另一个函数作用域中的变量的函数。 闭包的作用域链包含着它自己的作用域,以及...

  • 面试问题(七)

    面试常见问题汇总 最后附上部分常见面试题汇总,虽然不能完全覆盖所有面试官的问题,但相信在思路和角度方面能够反映大部...

  • 17.拓展:Vue.js 面试、常见问题答疑

    拓展:Vue.js 面试、常见问题答疑 在过去的很多面试中,我会经常问候选人一些关于 Vue.js 的问题。这些问...

  • js面试汇总

    13.谈谈垃圾回收机制的方式及内存管理 14.写一个function ,清除字符串前后的空格 15.js实现继承的...

  • java基础面试题

    java基础面试常见问题汇总 面向对象的特征有哪些方面? Object类中的方法 ==和equals方法的区别 八...

  • 面试常见问题 - 目录

    面试常见问题01 - C++相关(施工ing) 面试常见问题02 - 算法与数据结构(施工ing) 面试常见问题0...

  • 面试常见问题汇总

    基础篇 Nginx 作用是什么,为什么这么高效: 反向代理,主进程接收请求,工作进程异步非租塞的处理 负载均衡算法...

  • JQ面试常见问题

    最近把《锋利的jquery》重新看了一遍,结合自己平时总结,汇总一下面试常见问题。 1. window.onloa...

  • iOS最新面试题汇总(四)

    iOS最新面试题汇总:iOS最新面试题汇总(一)iOS最新面试题汇总(二)iOS最新面试题汇总(三)iOS最新面试...

  • iOS最新面试题汇总(三)

    iOS最新面试题汇总:iOS最新面试题汇总(一)iOS最新面试题汇总(二)iOS最新面试题汇总(三)iOS最新面试...

网友评论

      本文标题:JS面试常见问题汇总

      本文链接:https://www.haomeiwen.com/subject/jlviqhtx.html