小米面试题

1 >new生成一个对象的过程css

  1. 生成一个空对象 var obj={};
  2. 设置新对象的constructor属性为构造函数的名称,设置对象的_proto_属性指向构造函数的prototype对象
  3. 使用新对象调用函数,函数中的this被指向新的对象
  4. 初始化完毕新对象地址,保存在等号左边的变量中

2>请简单说明什么是事件冒泡和事件捕获以及事件委托
html

IE事件流叫做事件冒泡,便是事件开始有最具体的元素(文档中嵌套最深的那个节点)接受,而后逐级向上传播较为不具体的的节点 element(div)>element(body)>element(html)>Document;ajax

Netscape Communication团队提出的另外一事件流叫做事件捕捉:事件捕捉的意思是不太具体的节点应该更早的接收到事件,而具体的节点应该是最后接收到事件的Document>html>body>div;浏览器

事件委托:给父元素绑定事件,用来监听子元素的冒泡事件,并找到那个子元素的仍是件缓存

定义:利用事件冒泡处理动态元素事件绑定的方法,专业术语叫做事件委托        使用事件委托技术能够避免对特定的没个节点添加事件监听器,事件监听器是被添加到他们的父元素上,事件监听器会分析从子元素冒泡上来的事件,肯定而且捕捉到哪一个子元素的事件服务器

 

3>从输入一个url到浏览器页面展现都经历了哪些过程?dom


DNS查询-tcp三次握手-https请求:
tcp

  1. 首先,在浏览器中输入url
  2. 在浏览器先查看浏览器缓存-系统缓存-路由器缓存,若是缓存中有,会直接在屏幕中显示页面内容,若没有调到第三步
  3. 在发送http请求前,须要域名解析(DNS解析),解析获取相应的IP地址
  4. 浏览器向服务器发起tcp链接,与浏览器创建tcp三次握手
  5. 握手成功后,浏览器想服务器发送请求,请求数据包
  6. 服务器处理手段的请求,将数据返回至浏览器
  7. 浏览器收到http相应,
  8. 读取页面内容,浏览器渲染,解析HTML源码
  9. 生成dom树,解析css样式,js交互
  10. 客户端和服务端交互
  11. ajax查询
相关文章
相关标签/搜索