zoukankan      html  css  js  c++  java
  • 前端鄙视题

    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模块的概念。

  • 相关阅读:
    异步上传文件、图片
    Excel文件上传,高亮错误的行和列
    生成缩略图
    发送邮件
    饿补基础知识
    Visual 2012 常用快捷键
    C# Ref 与out 的区别
    javascript 动态操作Html
    XmlHttpRequest 使用
    CentOS PHP-5.4.8 编译安装之初体验
  • 原文地址:https://www.cnblogs.com/cwzqianduan/p/8807166.html
Copyright © 2011-2022 走看看