1、CSS和JS在网页中的放置顺序是怎样的?
CSS多是以link的方式写在HEAD的部分的,否则可能会出现白屏或者FOUC(Flash of unstyled content)。
JS在网页中放在BODY底部,因为JS加载的时候是禁用并发加载的,这很影响页面的加载速度,所以放在最后。
2、解释白屏和FOUC
·白屏1:如果CSS放在body的最后的话,因为HTML加载顺序是从上往下,这会导致CSS的加载被推迟,由于CSS样式并没有到,在解析完成之前浏览器不能完成渲染,所以会产生白屏现象。
·白屏2:如果把JS放在页面head部分、上面,因为JS加载的时候会禁用并发加载,在JS没有加载完成之前JS下面的HTML不会解析,所以也会产生白屏。
·以上情况在IE浏览器中会产生FOUC(flash of unstyled content)。
3、async和defer的作用是什么?有什么区别
①async:浏览器默认情况下JS是立即加载执行的,但是如果在script标签里面加入了async就可以让JS和其他并行执行,但是不保证先后顺序。
②defer:在script标签加入defer,就是JS先加载进来,但是执行要等到所有元素解析完成之后。
4、简述网页的渲染机制
①浏览器解析HTML来,创建一个DOM树
②浏览器解析CSS,得出一个样式数据,绘制一个CSSOM数。解析CSS时候有一个先后优先级:浏览器默认设置,用户设置,外链样式,内联样式,html中的style。
③绘制DOM树,渲染树(rendering tree)
④以上完成,浏览器就开始在屏幕上显示出来。
5、JavaScript 定义了几种数据类型? 哪些是简单类型?哪些是复杂类型?
六种
·简单类型:number、String、Boolean
·复杂类型:object
·两个特殊的:undefined、null
其中object可以分为:狭义的对象(object)、数组(array)、函数(function)
6、NaN、undefined、null分别代表什么?
NaN表示某一个是数字类型,但是不是具体的数字。
undefined表示变量未定义或不存在。
null表示变量虽然存在,但是值是空的。
7、typeof和instanceof的作用和区别?
typeof是用来显示数据类型的字符串,什么类型的对象就会返回什么样子的object。
instanceof返回的值是布尔型boolean,用于判断一个对象是不是某一个类型的实例。