Javascript:序

CSS和JS在网页中的放置顺序是怎样的?


css的link放在head里面,一般用link而不是@import因为link会在页面加载时同时加载,而import需要等到所有加载完毕后加载,会造成闪屏。

js一般放在body底部,因为js不加载完不会执行下一步,特殊重要的js文件写在顶部需要加入异步处理的字样,defer或async

解释白屏和FOUC


浏览器对于css和图片可以并行加载,但是对于js只能禁用并行,并且在完成前阻止其他加载。

因为不同浏览器的渲染方式不同,有的浏览器(IE,他这样做的原因是在样式加载完毕之前,其实无需做任何事情,构建呈现树是一种浪费)会先加载css文件,之后和html一并展现,在加载完成之前就会出现白屏的现象。

js的前置,也会造成白屏现象。

而另外一些浏览器怎会先加载html文件,后加载css,这样在css加载完成之后就会出现样式刷新的效果,也就是FOUC。

至于@import,需要看到底作用在什么浏览器上,像ff为了用体验,会采用租个组件渲染的模式,所以当css后置时会出现FOUC,当把import放到head标签里面的时候,会造成页面组建下载时的无序性,所以解决白屏和FOUC问题的方法就是,老老实实的用link,然后把它放入head里。

参考文献

async和defer的作用是什么?有什么区别


两者都用于异步加载脚本。区别是:

async不一定按照顺序加载,defer按照顺序加载

简述网页的渲染机制


1.解析HTML标签,构建DOM树

2.解析CSS标签,构建CSSOM树

3.合并两者形成渲染树,render tree

4.在此基础上进行布局,计算每个节点的几何结构

5.把每个节点绘制到屏幕上

JavaScript 定义了几种数据类型? 哪些是简单类型?哪些是复杂类型?


共6种

简单类型:

Null:什么都没有

Undefined:被声明但未初始化

Boolean:布尔值,true or false两种

Number:所有的数字类型

String:是Unicode字符组成的序列

复杂类型:

Object:对象,一种无序的数据集合

NaN、undefined、null分别代表什么?


NaN代表非数字,他与任何值包括自己都不相等

undefined代表未定义,是指已经声明但是为被初始化的变量

Null空指针,什么都没有

typeof和instanceof的作用和区别?


typeof 显示数据类型,返回值是数据类型

instanceof用于判断变量是否是某种对象的实例,返回布尔值

CODE




Javascript:序_第1张图片


Javascript:序_第2张图片


Javascript:序_第3张图片


Javascript:序_第4张图片


Javascript:序_第5张图片


Javascript:序_第6张图片

a由于变量提升,第一个是未定义,第二个是,b由于未声明,所以报错。



版权归ENVY和饥人谷所有,转载请注明出处

你可能感兴趣的:(Javascript:序)