29号提问的面试题

  1. 李茂志

    • 什么是闭包
      当一个函数内返回另一个函数时,返回的那个函数叫做闭包函数
    • 什么是函数柯里化
      局部套用,利用了闭包的原理,保存了程序的执行结果
    • 什么是函数防抖
      短时间内快速触发同一个事件,执行之前先干掉上一次,保证只执行最后一次(电梯门)
    • 什么是函数节流
      单位时间内,只允许触发一次(地铁闸机口)
  2. 李飞

    • 什么是原型链
      对象调用属性或方法时,现在自身查找,找到了就是使用,找不到就一次向上层原型查找,任意一层找到,就停止并使用,直到顶层,还找不到,就抛出undefined
    • 什么是Event Loop
      Event Loop:事件循环机制
      宏任务:一般用来执行同步程序,和部分异步程序
      所有的同步程序都是宏任务:计时器,dom事件,ajax
      微任务:一般用来执行异步程序抛出的其他功能
      只有部分异步程序是微任务
      微任务一定会在当前宏任务结束后,再开始执行
    • 简单介绍Promise的使用
      promise是为了优化回调地狱的问题,解决异步程序的
      • 作为实例使用:被new执行,创建一个promise实例
        p.then(成功,失败),p.catch(所有失败)
        (链式调用)then和catch的回调函数的返回值
        (链式调用的优点)可读性好,方便调错,节省内存
      • 作为对象使用,使用promise的类方法
        promise类的方法:all一个失败为catch,全部成功才执行then
        any()一个成功执行then,全部失败才执行catch
        race(赛跑)只要有一个结束就结束
        allSettled所有的promise都结束,不管成功失败都会触发then,参数为每个实例的状态和数据
        promise.resolve()成功状态的promise
        promise.reject()失败状态的promise
    • 什么是数据劫持,如何实现数据劫持
      拦截数据的访问和修改,在数据被其他程序访问和修改时,执行附带的其他自定义功能
      如何实现:自定义实现:自定义数据的访问方法和修改方法
      get和set关键字
  3. 邹雨楉

    • ES6新增了哪些特性
      声明关键字:let、const、箭头函数、展开运算符、解构赋值、字符的操作方法、反引号、数据类型:symbol、数据结构:set,map、遍历语句for-of
      数据劫持的方法peoxy()
    • 常见的模块化规范有哪些
      ECMAScript前端模块化
      CommonJS后端模块化
    • 如何实现ES6的模块化
      暴露关键字:export{变量名或函数名}可以多次使用
      export default 对象名:只能使用一次
      引入模块关键字:import “文件路径+文件名”
      import{暴露时的名字} from “文件路径+文件名”
      使用了export default暴露的使用import 任意名字 from “文件路径+文件名”
    • 什么是单例模式,特点是什么
      单个实例,整个应用使用过程中只出现一个实例,就算被多次调用也只有一个实例存在
      特点:节省性能
  4. 杜亚晨

    • 有哪些本地存储技术,及其特点
      localStorage 永久
      sessionStorage 会话级
      cookie 默认会话级,可修改4K 50条
    • 什么是Ajax
      ajax前后端交互的桥梁,可以在前后端中进行数据传输
      优势:可以异步加载新数据,破坏了前进后退功能,破坏了搜索引引擎优化,提高了首屏加载速度
      使用:四步走:创造载体、设置请求、状态监听、发送数据
    • 什么是跨域
      在浏览器中,使用XMLHttpRequest,发起请求是时,发起请求方和被请求方没有遵守同源策略并且被请求方没有设置“访问控制允许源”信息,就会被同源策略组织的情况,就叫跨域
      解决跨域:服务器代理、JSONP、CORS
    • json有什么特点
      必须是字符,不能是双引号字符
      必须遵守花括号对象或中括号对象形式
      如果是花括号对象形式,键必须使用双括号包裹
      数据结尾不能出现没有意义的逗号
      不允许出现函数,undefined,NaN
  5. 吴志明

    • 什么是服务器代理
      不使用浏览器,使用服务器发起请求
      客户端A,请求服务端B
      搭建临时服务端a,服务端a访问服务端B,客户端a在请求临时服务端A中的数据,即可实现

    • Object.defineProperty和Proxy的区别是什么
      defineProperty只能劫持现有数据,不能劫持之后添加的数据,proxy可以

    • 如何实现闭包

    • Object类身上有哪些常见方法
      Object.defineProperty
      Object.defineProperties

      Object.create
      Object.assign
      Object.is
      Object.setPrototypeOf
      Object.getPrototypeOf

  6. new的原理

    • 创建新对象
    • 改变this指向到这个新函数
    • 将新对象的原型链(proto)指向原函数的原型对象(prototype)
    • 执行原函数内的功能
    • 检测原函数是否主动返回对象,如果没有,返回这个新对象
  7. array类的方法
    array.from
    array.of
    array.isArray

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值