task 16

2016-11-14  本文已影响0人  饥人谷_姜琼君

CSS和JS在网页中的放置顺序是怎样的?
css使用link标签放在顶部 <head></head>中。

  1. 把css样式放在底部会出现白屏,fouc等现象。
  2. 使用@import标签即使放在link标签中且放在头部,也有可能出现白屏。

js放在底部
放前面因为js是按顺序加载,脚本会阻塞后面内容的呈现,会阻塞其后组件的下载,也会出现白屏现象。

解释白屏和FOUC
白屏:浏览器在等待页面组件包括样式表全部加载完成后才呈现整个页面。若样式表放在页面底部,将会出现白屏。——样式表在页面中位置并不影响页面中组件的下载时间,但是会影响页面的呈现。
fouc:如果把样式放在底部,对于IE浏览器,在某些场景下(点击链接,输入URL,使用书签进入等),会出现 FOUC 现象(逐步加载无样式的内容,等CSS加载后页面突然展现样式).对于 Firefox 会一直表现出 FOUC .

async和defer的作用是什么?有什么区别
defer使得browsers延迟脚本的执行,直到文档的载入和解析完成,并可以操作(在onload事件触发前)。
async使得browsers可以尽快地执行脚本,而不用在下载脚本时阻塞文档解析(异步)。在不支持async的browsers中,通过动态创建<script>元素并把它插入文档中,来实现脚本的异步载入和执行。
若两个属性同在,会忽略defer而遵从async

简述网页的渲染机制

  1. 解析html标签,构建dom树
  2. 解析css标签,构建cssom树
  3. 把dom和cssom组合成渲染树(render tree)
  4. 在渲染树的基础上进行布局,计算每个节点的几何结构
  5. 把每个节点绘制到屏幕

JavaScript 定义了几种数据类型? 哪些是简单类型?哪些是复杂类型?
JS定义了5种简单类型:Undefined;Null;Boolean;Number和String
1种复杂类型:Object

NaN、Undefined、Null分别代表什么?
NaN:"not a number"即非数值,用于表示一个本来要返回数值的操作数未返回数值的情况,任何涉及NaN的操作都会返回NaN。
Undefined:代表声明变量但未对其初始化。
Null:表示一个空对象指针,常用于定义变量用于将来保存对象。

typeof和instanceof的作用和区别?
typeof:一元运算符,用来返回操作数类型的字符串
instanceof 运算符是用来测试一个对象是否在其原型链原型构造函数的属性。其语法是object instanceof constructor。

代码1:

Paste_Image.png

代码2:

Paste_Image.png

代码3:

Paste_Image.png

代码4:
var arr = [3,4,5]; for(i=0;i<3;i++){ console.log(arr[i]*arr[i]) };
代码5:
var obj = {name:'hunger',sex:'mail',age:'28'} for(key in obj){ console.log(obj[key]); };

代码6:

Paste_Image.png
上一篇下一篇

猜你喜欢

热点阅读