前端面试知识点大全——JS篇(三)

总纲:前端面试知识点大全

目录

1.变量声明提升

2.冒泡机制

3.attribute 和 property

4.document load 和 document DOMContentLoaded

5.同源策略 (same-origin policy)

6.strict模式

7.请解释什么是单页应用 (single page app), 以及如何使其对搜索引擎友好 (SEO-friendly)

8.Promise

8.1 then()方法

8.2 catch()方法

8.3 Promise.all()静态方法

8.4 Promise.race()静态方法

8.5 Promise.resolve()静态方法

8.6 穿透特性

 9.async

10.使用一种可以编译成 JavaScript 的语言来写JavaScript 代码有哪些优缺点?


1.变量声明提升

学习博客:https://blog.csdn.net/sinat_36521655/article/details/82469651

在js中,函数及变量的声明都将被提升到函数的最顶部。

理解var a=5; var a; a都会提升;但是function的提升不太一样,function a(){}这样a会提升,但是var a = function(){} 这种并不会提升。

2.冒泡机制

JS工作流的三个阶段:捕获阶段、处于目标阶段、冒泡阶段。在事件绑定的时候这个有用

IE只支持事件冒泡,不支持事件捕获,只能使用attachEvent();

别的浏览器是支持事件冒泡和事件捕获,使用addEventListener(event, func, usrCapture),第三个默认为false。

3.attribute 和 property

在JS高程设计中将attribute翻译为“特性”,property翻译为“属性”。attribute通常指DOM对象中的dom节点自带的属性,而property指对象的属性。从某种意义上说attribute属于property范畴。

4.document load 和 document DOMContentLoaded

DOM文档加载步骤:

(1)解析html结构

(2)加载外部脚本和样式表文件

(3)解析并执行脚本代码

(4)构造HTML DOM模型 //DOMContentLoaded

(5)加载图片等外部文件

(6)页面加载完毕 //load

页面完全加载成功才会触发load事件,而dom树构建成功时DOMContentLoaded事件就会被触发,所以DOMContentLoaded事件早于Load事件发生。

5.同源策略 (same-origin policy)

同源:指域名(主机名或者ip地址,两者不能混着)、端口、协议相同。不同的客户端JS脚本在没有明确授权的情况下,不允许读取对方的资源

同源策略:同域名(或者ip地址)、同端口、同协议视为一个域,一个域内的JS脚本仅仅具有本域内的权限,无法访问其他域的资源。有NetScape提出的安全策略,为了保护用户的信息安全

优点:他是浏览器最核心也是最基本的安全功能,可以在一定程度上放置XSS(跨站脚本攻击)、CSFR(跨站请求伪造)等攻击,提高web前端的安全性

缺点:在一定程度上限制了web拓展上的灵活性

由于浏览器实现的同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源,所以AJAX是不允许跨域的。不过 像

你可能感兴趣的:(前端面试知识点大全,JavaScript,前端面试知识点大全)