任務(wù)16

1.CSS和JS在網(wǎng)頁中的放置順序是怎樣的?

  • 一般情況下CSS被放置在head里面,因為渲染頁面的話,CSS和html頁面的內(nèi)容是同時加載的.
  • JS被放置在body內(nèi)容之后加載,因為JS的加載會阻止加載其他的內(nèi)容.

2.解釋白屏和FOUC.

  • 不同的瀏覽器對于CSS和HTML的處理方式不一樣,有的是等待CSS加載完成之后,對HTML元素進行渲染和展示。此時容易出現(xiàn)白屏問題
  • 有的是先對HTML元素進行展示,然后等待CSS加載完成后重新對樣式進行修改。此時容易出現(xiàn)FOUC無樣式內(nèi)容閃爍
  • 如果把CSS樣式放在底部,對于IE瀏覽器,在某些場景下(新窗口打開,刷新等)頁面會出現(xiàn)白屏,而不是內(nèi)容逐步展現(xiàn),如果使用 @import標簽,即使 CSS 放入 link, 并且放在頭部,也可能出現(xiàn)白屏。
  • 如果把CSS樣式放在底部,對于IE瀏覽器,在某些場景下(點擊鏈接,輸入URL,使用書簽進入等),會出現(xiàn)FOUC現(xiàn)象(逐步加載無樣式的內(nèi)容,等CSS加載后頁面突然展現(xiàn)樣式).對于Firefox會一直表現(xiàn)FOUC 。
  • 如果把js文件放在頭部,腳本會阻塞后面內(nèi)容的呈現(xiàn),腳本會阻塞其后組件的下載,出現(xiàn)白屏問題。

3.async和defer的作用是什么?有什么區(qū)別。

  1. 默認引用 script:<script type="text/javascript" src="x.min.js"></script>
    當瀏覽器遇到 script 標簽時,文檔的解析將停止,并立即下載并執(zhí)行腳本,腳本執(zhí)行完畢后將繼續(xù)解析文檔。
  2. async模式 <script type="text/javascript" src="x.min.js" async="async"></script>
    當瀏覽器遇到 script 標簽時,文檔的解析不會停止,其他線程將下載腳本,腳本下載完成后開始執(zhí)行腳本,腳本執(zhí)行的過程中文檔將停止解析,直到腳本執(zhí)行完畢。
    3.defer模式 <script type="text/javascript" src="x.min.js" defer="defer"></script>
      當瀏覽器遇到 script 標簽時,文檔的解析不會停止,其他線程將下載腳本,待到文檔解析完成,腳本才會執(zhí)行。
    區(qū)別:所以async和defer的最主要的區(qū)別就是async是異步下載并立即執(zhí)行,然后文檔繼續(xù)解析,defer是異步加載后解析文檔,然后再執(zhí)行腳本.

5.簡述網(wǎng)頁的渲染機制。

Paste_Image.png

1)瀏覽器會解析三個東西:
一個是HTML/SVG/XHTML,事實上,Webkit有三個C++的類對應(yīng)這三類文檔。解析這三種文件會產(chǎn)生一個DOM Tree。
CSS,解析CSS會產(chǎn)生CSS規(guī)則樹。
Javascript,腳本,主要是通過DOM API和CSSOM API來操作DOM Tree和CSS Rule Tree.

2)解析完成后,瀏覽器引擎會通過DOM Tree 和 CSS Rule Tree 來構(gòu)造 Rendering Tree。注意:
Rendering Tree 渲染樹并不等同于DOM樹,因為一些像Header或display:none的東西就沒必要放在渲染樹中了。
CSS 的 Rule Tree主要是為了完成匹配并把CSS Rule附加上Rendering Tree上的每個Element。也就是DOM結(jié)點。也就是所謂的Frame。
然后,計算每個Frame(也就是每個Element)的位置,這又叫l(wèi)ayout和reflow過程。
1)瀏覽器會解析三個東西:
一個是HTML/SVG/XHTML,事實上,Webkit有三個C++的類對應(yīng)這三類文檔。解析這三種文件會產(chǎn)生一個DOM Tree。
CSS,解析CSS會產(chǎn)生CSS規(guī)則樹。
Javascript,腳本,主要是通過DOM API和CSSOM API來操作DOM Tree和CSS Rule Tree.

2)解析完成后,瀏覽器引擎會通過DOM Tree 和 CSS Rule Tree 來構(gòu)造 Rendering Tree。注意:
Rendering Tree 渲染樹并不等同于DOM樹,因為一些像Header或display:none的東西就沒必要放在渲染樹中了。
CSS 的 Rule Tree主要是為了完成匹配并把CSS Rule附加上Rendering Tree上的每個Element。也就是DOM結(jié)點。也就是所謂的Frame。
然后,計算每個Frame(也就是每個Element)的位置,這又叫l(wèi)ayout和reflow過程。

3)最后通過調(diào)用操作系統(tǒng)Native GUI的API繪制。

5.JavaScript 定義了幾種數(shù)據(jù)類型?哪些是簡單類型?哪些是復(fù)雜類型?
數(shù)據(jù)類型包含,一共有5種簡單類型和1種復(fù)雜類型
undefined (簡單)
null (簡單)
boolean (簡單)
number (簡單)
string (簡單)
object(復(fù)雜)
6.NaN、undefined、null分別代表什么?
NaN:not a number 是一個特殊的數(shù)值。
undefined:var 聲明變量,但是沒有對其加以賦值的時候,變量的值是。undefined。
null:表示一個空對象指針。
7.typeof和instanceof的作用和區(qū)別?
instanceof和typeof都能用來判斷一個變量是否為空或是什么類型的變量
在變量和值上調(diào)用typeof,將返回一個字符串,這個字符串標示了這個變量或值的類型。如果這個變量或值是一個引用類型將會返回"object"。

代碼題

1.完成如下代碼判斷一個變量是否是數(shù)字、字符串、布爾、函數(shù) (難度

Paste_Image.png

2.以下代碼的輸出結(jié)果是?(難度
*)

Paste_Image.png

3.以下代碼的輸出結(jié)果是? (難度***)

Paste_Image.png

4.遍歷數(shù)組,把數(shù)組里的打印數(shù)組每一項的平方 (難度**)

Paste_Image.png

5.遍歷 JSON, 打印里面的值


Paste_Image.png

6.下面代碼的輸出是? 為什么

Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問答: 1. CSS和JS在網(wǎng)頁中的放置順序是怎樣的? CSS一般放置在的 標簽中。網(wǎng)頁渲染時,先解析HTML標簽...
    小木子2016閱讀 470評論 0 0
  • 學(xué)習內(nèi)容:JavaScript基本概念,基礎(chǔ)數(shù)據(jù)類型,運算符,流程控制語句 一、CSS和JS在網(wǎng)頁中的放置順序是怎...
    鴻鵠飛天閱讀 583評論 0 0
  • 1. CSS和JS在網(wǎng)頁中的放置順序是怎樣的? css放在head標簽里 js放在body標簽的最后主要是為了避免...
    mint9602閱讀 390評論 0 0
  • 1、CSS和JS在網(wǎng)頁中的放置順序是怎樣的? CSS:通常,將CSS寫成一個單獨的CSS文件,然后通過link引入...
    大胡子歌歌閱讀 217評論 0 0
  • 問答: 1.CSS和JS在網(wǎng)頁中的放置順序是怎樣的? CSS使用link引入樣式,將引入的樣式表放在 標簽內(nèi),而j...
    璐璐熙可閱讀 225評論 0 0

友情鏈接更多精彩內(nèi)容