03-webapi阶段高频面试题

前端面试题

###1、localStorage、sessionStorage和cookie的区别

: 共同点: 都是可以用来存储数据
	区别: 
	1. 请求不同: 
		cookie 数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。
				sessionStorage 和 localStorage不会自动把数据发给服务器,仅在本地保存。
	2. 存储大小限制也不同: 
		cookie 数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。
		sessionStorage 和 localStorage虽然也有存储大小的限制,但比cookie大得多,sessionStorage约5M、localStorage约5M 。
	3. 数据有效期不同: 
		 sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持; 
		 localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;
		 cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。 

2、什么是事件代理(事件委托)

1、事件代理(事件委托),是JavaScript中绑定事件的常用技巧。顾名思义,“事件代理”,就是把原本需要绑定的事件委托给父元素,让父元素负责事件监听。事件代理的原理是DOM元素的事件冒泡

事件委托的好处:
减少事件数量,提高性能

3、什么是事件流

事件流是指从页面接收事件的顺序。也就是说,当一个事件发生时,这个事件的传播过程就是事件流。
事件流一般包含三个阶段:捕获  目标  冒泡

###4、js的运行机制是什么

答:js是单线程执行的,页面加载时,会自上而下执行主线程上的同步任务,当主线程代码执行完毕时,才开始执行在任务队列中的异步任务。具体如下  
    1.所有同步任务都在主线程上执行,形成一个执行栈。
    2.主线程之外,还存在一个"任务队列(eventloop队列或者消息队列)"。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件。
    3.一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列",看看里面有哪些事件。哪些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。
    4.主线程不断重复上面的第三步。

5、异步函数有哪些

JavaScript 中常见的异步函数有:定时器,事件和 ajax 等

###6、伪数组有哪些

1、参数 arguments,
2DOM 对象列表(比如通过 document.getElementsByTags 得到的列表)、childNodes也是伪数组
3、jQuery 对象(比如 $("div")

7、真数组和伪数组的区别

伪数组:
1、拥有length属性
2、不具有数组的方法
3、伪数组是一个Object,真数组是Array
4、伪数组的长度不可变,真数组的长度是可变的

###8、伪数组怎么转真数组

1let newArr = Array.protype.slice.call(伪数组)
2let newArr = Array.from(伪数组),ES6的新语法
3let newArr = [...伪数组],使用扩展运算符,也是ES6的语法

9、DOM操作常用的API有哪些

1、创建节点
	createElement
	cloneNode
    
2、页面修改
	appendChild
	insertBefore
	removeChild
	replaceChild

3、节点查询
	document.querySelector
	document.querySelectorAll
	document.getElementById
	document.getElementsByTagName

4、节点关系
  父关系型:parentNode
  子关系型:children
  
5、元素属性
	设置:setAttribute
    获取:getAttribute

10、如何检测浏览器的类型

可以通过检测navigator.userAgent  在通过不通浏览器的不同来检测

11、JavaScript计时函数

1、setInterval() 周期执行函数。间隔指定的毫秒数不停地执行指定的代码。
  clearInterval() 方法用于停止 setInterval() 方法执行的函数代码。
  
2、setTimeout() 延迟执行函数。延迟执行指定的函数,只能执行一次
  clearTimeout() 方法用于停止执行setTimeout()方法的函数代码。

12、如何阻止冒泡和默认行为

: 阻止冒泡和捕获  e.stopPropagation()
    阻止默认行为   e.preventDefault()   return false
    注意:addEventListener注册的事件,在高浏览器版本中,return false将没有效果,必须要用事件对象

13、原生注册事件的方式有哪些?区别是什么

: 注册方式
		  1. on + 事件名称
		  2. addEventListener
		区别: 
			1. 使用on注册事件,同一个元素只能注册一个同类型事件,否则会覆盖。
			2. addEventListener可以注册同一事件多次,不会被覆盖。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值