JS 語法(16)

問答

Paste_Image.png
Paste_Image.png
Paste_Image.png

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

  • 使用link標(biāo)簽將css樣式表放在頂部
  • <script></script>放在尾部

二、解釋白屏和FOUC

  1. 先把樣式加載完匯總再渲染的瀏覽器
  2. 先把內(nèi)容加載出來等發(fā)現(xiàn)樣式的時候再去繪制一遍的瀏覽器

  • 如果是1類瀏覽器如果將css放在后面,因為等待時間加上自身的下載時間,會出現(xiàn)長時間白屏,如果是使用@import標(biāo)簽引入css也會出現(xiàn)白屏現(xiàn)象@import見簡書
  • 如果是2類瀏覽器會出現(xiàn)Flash of Unstyled Content
  • 若未將js放在頂部,腳本禁用并發(fā)并阻塞其他內(nèi)容下載并呈現(xiàn),導(dǎo)致白屏或者內(nèi)容加載到一半停住的情況。

三、async和defer的作用是什么?有什么區(qū)別

  • 作用:如果將js放在<head>內(nèi),ayync和defer延遲加載script.js,實現(xiàn)異步加載防止阻塞后面內(nèi)容呈現(xiàn)和在組件下載。
  • 區(qū)別:

  1. defer延遲到文檔解析和顯示后執(zhí)行,有順序(在現(xiàn)實中瀏覽器不一定按順序執(zhí)行也不一定在DomContentload執(zhí)行之前完成。但是未來肯定會越來越遵從ECMA而規(guī)范。)
  2. async加載完js后馬上執(zhí)行,無順序。誰快誰先上。
  3. 兼容性:async>IE9,defer<=9會有bug.

操作dom的腳本不用async和defer(或者該部分腳本回調(diào))
執(zhí)行腳和好頁面執(zhí)行共用一個線程,不能同時進(jìn)行。
攜程
segmentfault1
segmentfault2

四、簡述網(wǎng)頁的渲染機(jī)制

  • 解析HTML標(biāo)簽,構(gòu)建DOM樹
  • 解析CSS標(biāo)簽,構(gòu)建CSSOM樹
  • 把DOM和CSSOM組合成渲染樹(render tree)
  • 在渲染樹的基礎(chǔ)上進(jìn)行Layout,定位坐標(biāo)和大小,是否換行,各種positiono,verflow,z-index屬性
  • 把每個節(jié)點繪制到屏幕上
  • 某些動態(tài)修改dom屬性或是css屬性的js會導(dǎo)致重新layout
  • Reflow重新驗證并計算Render Tree并layout,Repaint重新layout

參考
How to browsers work譯文

五、JavaScript 定義了幾種數(shù)據(jù)類型? 哪些是簡單類型?哪些是復(fù)雜類型?

  • 6+Symbol類型
  • 簡單:number/string/boolean/undefined/null
  • 復(fù)雜:object{object狹義/數(shù)組/函數(shù)}

六、NaN、undefined、null分別代表什么?

  • NaN(not a number):本質(zhì)是number類型,是js的特殊值,主要出現(xiàn)在將字符串解析成數(shù)字出錯的場合。
  • underfined和null是兩種特殊的數(shù)據(jù)類型。
  • undefined:系統(tǒng)為變量分配了內(nèi)存地址有指針。但未給變量賦值。

  1. 如調(diào)用函數(shù)時該傳遞的參數(shù)未提供
  2. 對象沒有賦值的屬性
  3. 函數(shù)沒有返回值時默認(rèn)返回undefined

  • null:空指針。表示一個值被定義了,定義為空值,即該處的值現(xiàn)在為空。比如,調(diào)用函數(shù)時,不需要傳入某個參數(shù),這時就可以傳入null。

七、typeof和instanceof的作用和區(qū)別?

  • 兩者都是數(shù)據(jù)類型
  • typeof運算符:返回一個值的數(shù)據(jù)類型(number|string|boolean|function|undefined|object)
  • instanceof運算符:區(qū)分object類型里面{window|函數(shù)|數(shù)組|null}instanceof運算符用來測試一個對象在其原型鏈中是否存在一個構(gòu)造函數(shù)的 prototype 屬性。
最后編輯于
?著作權(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)容

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