每天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
相关推荐
小白学大数据几秒前
R语言爬虫实战:如何爬取分页链接并批量保存
开发语言·爬虫·信息可视化·r语言
争不过朝夕,又念着往昔3 分钟前
Go语言反射机制详解
开发语言·后端·golang
Jerry Lau5 分钟前
go go go 出发咯 - go web开发入门系列(二) Gin 框架实战指南
前端·golang·gin
Azxcc014 分钟前
C++异步编程入门
开发语言·c++
Biaobiaone18 分钟前
Java中的生产消费模型解析
java·开发语言
我命由我1234534 分钟前
前端开发问题:SyntaxError: “undefined“ is not valid JSON
开发语言·前端·javascript·vue.js·json·ecmascript·js
0wioiw034 分钟前
Flutter基础(前端教程③-跳转)
前端·flutter
Jokerator36 分钟前
深入解析JavaScript获取元素宽度的多种方式
javascript·css
落笔画忧愁e37 分钟前
扣子Coze纯前端部署多Agents
前端
海天胜景39 分钟前
vue3 当前页面方法暴露
前端·javascript·vue.js