【JS】基础面试题

69 阅读2分钟
1、一个页面从输入 URL 到页面加载显示完成,这个过程中都 发生了什么?
  1. 当发送一个 URL 请求时,不管这个 URL 是 Web 页面的 URL 还 是 Web 页面上每个资源的 URL,浏览器都会开启一个线程来处理这个 请求,同时在远程 DNS 服务器上启动一个 DNS 查询。这能使浏览器 获得请求对应的 IP 地址。

  2. 浏览器与远程 Web 服务器通过 TCP 三次握手协商来建立一个 第 34 页 TCP/IP 连接。该握手包括一个同步报文,一个同步-应答报文和一个应 答报文,这三个报文在 浏览器和服务器之间传递。该握手首先由客户端 尝试建立起通信,然后服务器响应并接受客户端的请求,最后由客户端 发出该请求已经被接受的报文。

  3. 一旦 TCP/IP 连接建立,浏览器会通过该连接向远程服务器发送 HTTP 的 GET 请求。远程服务器找到资源并使用 HTTP 响应返回该资 源

  4. 此时,Web 服务器提供资源服务,客户端开始下载资源。

2、什么是事件冒泡?

一个事件触发后,会在子元素和父元素之间传播,这种传播分为三个阶段

一、捕获阶段(从 window 对象传导到目标节点(从外到里),这个阶段不会 响应任何事件)

二、目标阶段,(在目标节点上触发)

三、冒泡阶段(从目标节 点传导回 window 对象(从里到外))

事件委托/事件代理就是利用事件,冒泡的机制把里层需要响应的事件绑定到外层

3、什么是事件委托?

简介:事件委托指的是,不在事件的发生地(直接 dom)上设置监 听函数,而是在其父元素上设置监听函数,通过事件冒泡,父元素可 以监听到子元素上事件的触发,通过判断事件发生元素 DOM 的类 型,来做出不同的响应。

举例:最经典的就是 ul 和 li 标签的事件监听,比如我们在添加事 件时候,采用事件委托机制,不会在 li 标签上直接添加,而是在 ul 父元素上添加。

好处:比较合适动态元素的绑定,新添加的子元素也会有监听函数, 也可以有事件触发机制。

4、new 操作符做了哪些事情

new 操作符新建了一个空对象

这个对象原型指向构造函数的 prototype

执行构造函数后返回这个对象。