放置順序
CSS一般放置在<head>標(biāo)簽內(nèi)
如果css放在底部或者使用@import方式引入
某些瀏覽器例如Firefox,其渲染機(jī)制是:網(wǎng)頁加載到哪里就繪制到哪里羽戒。
這樣就出現(xiàn)無樣式內(nèi)容閃爍实抡。這種現(xiàn)象稱為FOUC 地啰。JS一般放置在</body>標(biāo)簽前
如果JS放在前面的其他位置
1 某些瀏覽器例如chrome,其渲染機(jī)制是:等所有的標(biāo)簽和樣式解析完成以后,再繪制網(wǎng)頁芬位。
2 加載JS會(huì)阻塞其后組件的下載俘种,會(huì)影響其后內(nèi)容的呈現(xiàn)。
這樣會(huì)出此現(xiàn)長時(shí)間白屏揪阶。
如何解決白屏問題?(當(dāng)JS放置在<head>標(biāo)簽內(nèi))
設(shè)置異步加載患朱,即加載和渲染后面文檔元素的過程將和js文件的加載和執(zhí)行同時(shí)進(jìn)行鲁僚。
1 <script async src="script.js"></script> 加載到哪里,JS就執(zhí)行到哪里裁厅。
2 <script defer src="script.js"></script> 所有元素加載完成之后冰沙,再執(zhí)行JS。
渲染機(jī)制
1.瀏覽器解析HTML执虹,創(chuàng)建DOM樹拓挥;解析CSS,創(chuàng)建CSS樹袋励。
2.合并DOM樹和CSS樹侥啤,創(chuàng)建渲染樹当叭。
3.根據(jù)渲染樹進(jìn)行布局,計(jì)算每個(gè)點(diǎn)的幾何結(jié)構(gòu)盖灸。
4.根據(jù)幾何結(jié)構(gòu)蚁鳖,繪制出網(wǎng)頁。
數(shù)據(jù)類型
原始類型 | 最基本赁炎,無法細(xì)分 | 例子 |
---|---|---|
String | 字符組成的文本 | var myVariable = 3.14; |
Number | 整數(shù)和小數(shù) | var myVariable = "Hello World"; |
Boolean | (真)和(假)兩個(gè)特定值 | var myVariable = true; |
特殊類型 | 區(qū)別 | 用法 |
---|---|---|
Undefined | 目前不存在任何值 | 1 變量被聲明了醉箕,但沒有賦值 |
2 調(diào)用函數(shù)時(shí),應(yīng)該提供的參數(shù)沒有提供 | ||
3 對象沒有賦值的屬性 | ||
4 函數(shù)沒有返回值 | ||
Null | 有一個(gè)值徙垫,但目前為空 | **1 ** 作為函數(shù)的參數(shù) |
** 2 ** 作為對象原型鏈的終點(diǎn) | ||
NAN | (not a number)非數(shù)字 | 和任何值都不相等讥裤,包括自己 |
合成類型 | 多個(gè)原始類型的值的合成 | 例子 |
---|---|---|
Object (廣義) | 各種值組成的集合,</br>可以看作是一個(gè)存放各種值的容器 | -- |
object(狹義) | 數(shù)據(jù)組合方式1 | ---- |
array | 數(shù)據(jù)組合方式2 | ---- |
function | 處理數(shù)據(jù)的方法 | ---- |
判斷變量
type 類型
typeof 判斷一個(gè)值的數(shù)據(jù)類型
返回類型:
1 原始 number, boolean,string;
2 函數(shù) function松邪;
3 特殊 undefined 坞琴;(利用這一點(diǎn)哨查,typeof可以用來檢查一個(gè)沒有聲明的變量)
4 其他 objectinstance 實(shí)例
instanceof 判斷一個(gè)值是不是某種對象的實(shí)例
返回類型:
1是 則返回 ture 逗抑;
2不是 則返回 false