一、cookie,localStorage,sessionStorage三者的区别
共同点:都是保存在浏览器端、且同源的
区别:
1、cookie数据始终在同源的http请求中携带,即cookie可以在同源的浏览器和服务器间来回传递,而sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存。
2、存储大小限制也不同,cookie数据不能超过4K。sessionStorage和localStorage存储大小可以达到5M或更大
3、数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭之前有效;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie:只在设置的cookie过期时间之前有效,即使窗口关闭或浏览器关闭
4、作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localstorage,cookie在所有同源窗口中都是共享的
二、call,apply,bind的方法都可以改变this的指向,三个方法的区别
call和apply的区别仅仅是传实参时的区别:
call是把参数用逗号隔开一直往后写,apply是把参数全部放到一个数组里
bind与call和apply的区别是调用时机的区别:
call和apply在修改this指向的同时会立即调用该函数,bind在修改this指向之后不会立即调用,而是返回一个修改完this指向的新函数,需要我们手动调用
三、
1. 从对象来说,attribute是html文档上标签属性,而property则是对应dom元素的自身属性。
2.从操作方法上来看,attribute可以通过dom core规范的接口 getAttribute和setAttribute进行获取修改,而property可以通过对象访问属性的方式 . 或者 [" "]来修改获取。
四、面试题let、var、const的区别
- let和const和定义的变量都会被提升,但是不会被初始化,不能被引用,不会像var定义的变量那样,初始值为undefined。。
- let 和 const 是JS中的块级作用域,var定义的是函数级作用域
- let 和 const 不允许重复声明(会抛出错误),var允许重复定义
- let 和 const 定义的变量在定义语句之前,如果使用会抛出错误(形成了暂时性死区),而 var 不会。
- const 声明一个只读的常量。一旦声明,常量的值就不能改变(如果声明是一个对象,那么不能改变的是对象的引用地址)
五、jq中attr()和prop()的区别
attr()和prop()的区别,上两个方法即可设置属性,也可获取属性值
attr()的内部原生js实现是setAttrabiute()和getAttrabiute; prop()的内部原生js实现的是直接点语法
建议当操作系统自带属性时使用prop(),操作自定义属性时用attr()
建议当操作属性名和属性值相同的属性时,使用prop()
六、jq中 ready事件, onload事件的区别
相同点:
ready事件,是在文档加载完之后就执行
onload事件,也是文档加载完之后执行
不同点:
- 执行时间
window.onload :必须等到页面内包括图片的所有元素加载完毕后才能执行。
$(document).ready():DOM 结构绘制完毕后就执行,不必等到加载完毕。 - 编写个数不同
window.onload:不能同时编写多个,如果有多个 window.onload 方法,只会执行一个
$(document).ready():可以同时编写多个,并且都可以得到执行