• 前端鄙视题


    1.什么是闭包,为什么要使用闭包?

    闭包就是能够读取其他函数内部变量的函数;闭包可以读取函数内部的变量,可以让变量的值始终保持在内存中。

    2.解析事件委托?

    事件委托,也叫事件代理,通俗地来讲,就是把一个元素响应事件(click、keydown......)的函数委托到另一个元素;

    举个例子,比如一个宿舍的同学同时快递到了,一种方法就是他们都傻傻地一个个去领取,还有一种方法就是把这件事情委托给宿舍长,让一个人出去拿好所有快递,然后再根据收件人一一分发给每个宿舍同学;

    在这里,取快递就是一个事件,每个同学指的是需要响应事件的 DOM 元素,而出去统一领取快递的宿舍长就是代理的元素,所以真正绑定事件的是这个元素,按照收件人分发快递的过程就是在事件执行中,需要判断当前响应的事件应该匹配到被代理元素中的哪一个或者

    哪几个。

    委托的优点:1. 减少内存消耗 2. 动态绑定事件

    3.谈谈this对象的理解?

    this表示当前对象,this的指向是根据调用的上下文来决定的,默认指向window对象,指向window对象时可以省略不写;

    对象函数调用,哪个对象调用就指向哪个对象;

    使用 new 实例化对象,在构造函数中的this指向实例化对象;

    使用call或apply改变this的指向。

    4.如何解决ajax回调地狱问题?

    首先关于回调地狱,就是函数层层嵌套,后面的函数必须等前面函数完成才能执行,代码会变得非常冗杂!

    异步编程作为JavaScript中的一部分,具有非常重要的位置,它帮助我们避免同步代码带来的线程阻塞的同时,也为编码与阅读带来了一定的困难。过多的回调嵌套很容易会让我们陷入“回调地狱”中,使代码变成一团乱麻。为了解决“回调地狱”,我们可以使用文中所述的这五种常用方法:

    • function拆解
    • 事件发布/订阅模式
    • Promise
    • Generator
    • async / await

    5.谈谈你对es6的理解?

    es6是一个新的标准,它包含了许多新的语言特性和库,是JS最实质性的一次升级。
    比如’箭头函数’、’字符串模板’、’generators(生成器)’、’async/await’、’解构赋值’、’class’等等,还有就是引入module模块的概念。

  • 相关阅读:
    httpclient妙用一 httpclient作为客户端调用soap webservice(转)
    WebService学习总结(转)
    C++的override和final
    C++类const和static成员初始化
    C++数据存储方式
    C++类成员存储大小
    内联函数
    C++接口的概念
    C++深拷贝和浅拷贝
    C++构造函数以及何时被调用
  • 原文地址:https://www.cnblogs.com/cwzqianduan/p/8807166.html
Copyright © 2020-2023  润新知