每天10个js面试题(五)

1、forEach和map⽅法有什么区别?

  • 都是⽤来遍历数组的
  • forEach()⽅法会针对每⼀个元素执⾏提供的函数,对数据的操作会改变原数组,该⽅法没有返回值;
  • map()⽅法不会改变原数组的值,返回⼀个新数组,新数组中的值为原数组,调⽤函数处理之后的值;

2、虚拟dom?

  • ⽤ JavaScript 对象结构表示 DOM 树的结构;
  • 然后⽤这个树构建⼀个真正的 DOM 树,插到⽂档当中 当状态变更的时候,重新构造⼀棵新的对象树。
  • 然后⽤新的树和旧的树进⾏⽐较,记录两棵树差异 把所记录的差异应⽤到所构建的真正的 DOM 树上,视图就更新了。
  • Virtual DOM本质上就是在 JS 和 DOM 之间做了⼀个缓存

3、call、apply、bind区别?

  • 执行时机:call和apply会在调用时立即执行函数;bind返回的是一个改变了this指向的新函数,这个新函数只有在被调用时才会执行。
  • 参数传递方式:call方法接受一个参数列表,其中参数通过逗号分隔;
  • apply方法接受一个数组或类数组对象作为参数,这些参数会在函数调用时被展开;
  • bind方法也接受一个参数列表,并且可以多次传入参数。

4、requestAnimationFrame?

  • requestAnimationFrame() ⽅法告诉浏览器您希望执⾏动画并请求浏览器在下⼀次重绘之前调⽤指定的函数来更新动画。
  • 该⽅法使⽤⼀个回调函数作为参数,这个回调函数会在浏览器重绘之前调⽤。

5、js组成部分?

  • ECMAScript(语法部分):JavaScript 语言基础
  • DOM(文档对象模型):规定了访问 HTML 和 XML 的方法
  • BOM(浏览器对象模型):提供了浏览器窗口之间进行交互的对象和方法

6、js事件流模型?

  • 事件冒泡:事件逐级向上传播
  • 事件捕捉:事件逐级向下传播,一直到最具体的
  • DOM事件流:三个阶段:事件捕捉,目标阶段,事件冒泡

7、jsdom委托原理?

  • 事件委托原理: 事件冒泡机制(把子元素的事件行为 委托给 父级元素执行优点)
  • 优点:
    1. 可以大量节省内存占用,减少事件注册
    1. 可以实现当新增子对象时,无需再对其进行事件绑定
  • 缺点:
  • 如果把所有事件都用事件代理,可能会出现事件误判

8、js变量提升与块级作用域?

  • 变量提升:就是会把变量定义提升到当前作用域的最上面,只有var定义的变量存在变量提升
  • 块级作用域:
  • JS 中作用域有:全局作用域、函数作用域。没有块作用域的概念。
  • ES6中新增了块级作用域。块作用域由 { } 包括,if 语句和 for 语句里面的{ }也属于块作用域。在外边不能调用块作用域里边定义的变量

9、js prototype 和 proto 的关系是什么?

  • prototype: 所有函数都会有一个prototype属性, 它就是函数的原型对象
  • proto: 所有实例对象上都会有一个proto属性, 它等同于函数的原型对象

10、js原型链详细?

  • 所有的对象都拥有proto属性,它指向对象构造函数的 prototype 属性
  • 所有的函数都同时拥有proto和 prototype 属性
  • 函数的proto指向自己的函数实现 函数的 protytpe 是一个对象(原型)
  • 所以函数的 prototype 也有proto属性 指向 Object.prototype
  • Object.prototype.proto指向 null
相关推荐
anyup几秒前
🔥牛逼!3分钟生成 5 套主题,还能一键切换暗黑模式!
前端·前端框架·uni-app
进击的明明几秒前
深入讨论前端开发中的跨域问题🤔
前端
大怪v2 分钟前
【创世界01】头脑热一把,我要带你纯前端手搓虚拟世界💪!
javascript·css·html
正在走向自律4 分钟前
企业微信消息推送全链路实战:Java后端与Vue前端集成指南
前端·vue.js·企业微信·企业微信消息推送·官方企业微信
_一两风4 分钟前
《从一道“诡异”输出题,彻底搞懂 JavaScript 的作用域与执行上下文》
前端·ecmascript 6
曹牧5 分钟前
C#:<SubType>Component</SubType>
开发语言·c#
lcc1878 分钟前
Vue3 CompositionAPI的优势
前端·vue.js
豆奶特浓610 分钟前
谢飞机勇闯Java面试:从内容社区的缓存一致性到AI Agent,这次能飞多高?
java·微服务·ai·面试·架构·缓存一致性·feed流
Pou光明12 分钟前
7_线程安全_线程间的内存可视性2缓存_内存屏障_读写排序
java·开发语言·缓存
五号厂房13 分钟前
聊一聊前端下载文件N种方式
前端