7.14 js前端面试第二天

7.事件委托

利用冒泡的原理,将本应该绑定在多个元素上的事件绑定在他们的祖先元素上,尤其在动态添加子元素的时候

//结构
 <ul class="father">
        <li class="one">1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
 </ul>
 //
  function selector(dom) {
            return document.querySelector(dom);
  }
  selector('.father').onclick = function (e) {
       console.log(this);  //谁触发该事件,this指向谁  (整个元素)
       console.log(e.target);//点击了谁,e.target就是谁(整个元素)
   }

8.冒泡,事件捕获

冒泡:从点击的元素开始,一直往他的父类的方向触发
捕获:与冒泡的顺序相反

9.如何阻止冒泡

  1. e.stopPropagation()
  2. return false

10.阻止默认事件

默认事件:点击链接跳转

  1. e.preventDefault()
  2. return false

11.js中this指向

this:函数运行时,自动生成的一个内部的对象,只能在函数内部作用,this的值会随时改变
谁调用,this指向谁
没有调用者,this指向window

https://blog.csdn.net/qq_43604714/article/details/117339747

12.原生对象和宿主对象

原生对象是ECMAScript规定的对象,所有内置对象都是原生对象,比如Array、Date、RegExp等;
宿主对象是宿主环境比如浏览器规定的对象,用于完善是ECMAScript的执行环境,比如Document、Location、Navigator等。

13、基本数据类型和引用数据类型

基本数据类型指的是简单的数据段,有5种,包括null、undefined、string、boolean、number;
引用数据类型指的是有多个值构成的对象,包括object、array、date、regexp、function等。
主要区别:
声明变量时不同的内存分配:基本数据类型由于占据的空间大小固定且较小,会被存储在栈当中,也就是变量访问的位置;引用数据类型存储在堆当中,变量访问的其实是一个指针,它指向存储对象的内存地址
也正是因为内存分配不同,在复制变量时也不一样。前者复制后2个变量是独立的,因为是把值拷贝了一份;后者则是复制了一个指针,2个变量指向的值是该指针所指向的内容,一旦一方修改,另一方也会受到影响。

参数传递不同:虽然函数的参数都是按值传递的,但是引用值传递的值是一个内存地址,实参和形参指向的是同一个对象,所以函数内部对这个参数的修改会体现在外部。原始值只是把变量里的值传递给参数,之后参数和这个变量互不影响。
https://blog.csdn.net/qq_43604714/article/details/117002819

14、AJAX的工作原理

ajax是通过XmlHttpRequest发起异步请求,从服务器中获取数据
ajax优点:
1.页面无刷新
2.异步请求,不会打断客户端的操作
3.可以将服务器端工作转接到客户端,减轻客户端的压力
ajax缺点:
1.ajax对浏览器后退机制造成了破坏,也就是说用户无法通过浏览器的后退按钮回到前一次操作的页面。
2.安全问题。技术同时也对IT企业带来了新的安全威胁,ajax技术就如同对企业数据建立了一个直接通道。这使得开发者在不经意间会暴露比以前更多的数据和服务器逻辑。
3. 对搜索引擎的支持比较弱。
4. 破坏了程序的异常机制
5. 违背了url和资源定位的初衷。例如,我给你一个url地址,如果采用了ajax技术,也许你在该url地址下面看到的和我在这个url地址下看到的内容是不同的。这个和资源定位的初衷是相背离的。

15. get和post

其实,GET和POST本质上两者没有任何区别。他们都是HTTP协议中的请求方法。底层实现都是基于TCP/IP协议。所谓区别,只是浏览器厂家根据约定,做得限制而已。

  1. get是通过明文发送数据请求,而post是通过密文
  2. get传输的数据量有限,因为url的长度有限,post则不受限;
  3. GET请求的参数只能是ASCII码,所以中文需要URL编码,而POST请求传参没有这个限制
  4. GET产生一个TCP数据包POST产生两个TCP数据包。对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值