前端面试题(2)

131 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第20天,点击查看活动详情

1、https和http的区别:

HTTP 是明文传输,HTTPS 通过 SSL\TLS 进行了加密

· HTTP 的端口号是 80,HTTPS 是 443

· HTTPS 需要到 CA 申请证书,一般免费证书很少,需要交费

· HTTP 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全

2、本地持久化的方式和区别:

与服务器交互:

cookie 是网站为了标示用户身份而储存在用户本地终端上的数据(通常经过加密)

cookie 始终会在同源 http 请求头中携带(即使不需要),在浏览器和服务器间来回传递

sessionStorage 和 localStorage 不会自动把数据发给服务器,仅在本地保存

存储大小:

cookie 数据根据不同浏览器限制,大小一般不能超过 4k

sessionStorage 和 localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大

有期时间:

localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据

sessionStorage 数据在当前浏览器窗口关闭后自动删除

cookie 设置的cookie过期时间之前一直有效,与浏览器是否关闭无关

3、get请求和post请求的区别:

GET:一般用于信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符

POST:一般用于修改服务器上的资源,对所发送的信息没有限制。

GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值,也就是说Get是通过地址栏来传值,而Post是通过提交表单来传值。

4、事件冒泡和事件捕获:

DOM事件模型分为两种:事件捕获和事件冒泡。

事件捕获以点击事件为例,同类型事件会由 根—>目标的祖先素—>目标的父元素—>目标元素

事件冒泡和事件捕获截然相反。从内到外依次触发:目标元素—>目标元素的父元素—>父元素的父元素—>根

阻止事件冒泡的方法

w3c方法是:event.stopPropagation(); 事件处理过程中,阻止冒泡事件,但不会阻止默认行为(跳转至超链接)

IE则是使用event.cancelBubble = true 阻止事件冒泡

5、事件委托:

JavaScript事件代理则是一种简单的技巧,把事件处理器添加到一个上级元素上,这样就避免了把事件处理器添加到多个子级元素上。这主要得益于浏览器的事件冒泡机制。

事件委托的原理:不给每个子节点单独设置事件监听器,而是设置在其父节点上,然后利用冒泡原理设置每个子节点。