task16-JS語法

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

CSS以link方式放在頭部嫩海,否則有可能出現(xiàn)白屏或者FOUC(無樣式內(nèi)容閃爍)厚宰。
JS放在底部魂角,否則有可能會出現(xiàn)腳本阻塞后面內(nèi)容的呈現(xiàn)或者阻塞其后組件的下載。

解釋白屏和FOUC尚猿。

為何出現(xiàn)白屏和FOUC(無樣式內(nèi)容閃爍)
** 白屏 **
1窝稿、如果把CSS樣式放在底部,對于IE瀏覽器凿掂,在某些場景下(新窗口打開伴榔,刷新等)頁面會等到html和css加載完成后再進(jìn)行渲染,造成頁面內(nèi)容不會逐步展現(xiàn)庄萎;如果使用@import標(biāo)簽踪少,即使CSS放入link,并且放在頭部,也可能出現(xiàn)白屏;
2糠涛、如果把JS放在網(wǎng)頁頭部或者h(yuǎn)tml中援奢,在加載JavaScript時,會禁用并發(fā)脱羡,并且阻止其他內(nèi)容的下載萝究,出現(xiàn)白屏免都;


解析JS時出現(xiàn)白屏

** FOUC (Flash of Unstyled Content) 無樣式內(nèi)容閃爍 **
如果把樣式放在底部,對于IE瀏覽器,在某些場景下(點擊鏈接,輸入URL,使用書簽進(jìn)入等),會出現(xiàn) FOUC 現(xiàn)象(逐步加載無樣式的內(nèi)容,等CSS加載后頁面突然展現(xiàn)樣式).對于 Firefox 會一直表現(xiàn)出 FOUC 。
參考文章
瀏覽器渲染過程
瀏覽器是怎樣工作的:渲染引擎帆竹,HTML解析(連載二)

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

在瀏覽器中如果沒有特別聲明栽连,js文件會和html同步加載解析险领,在文件頭部或者中間時運行JS有可能會出現(xiàn)白屏。
<script async src="script.js"></script>有 async秒紧,加載和渲染后續(xù)文檔元素的過程將和 script.js 的加載與執(zhí)行并行進(jìn)行(異步)绢陌。
<script defer src="myscript.js"></script>有 defer,加載后續(xù)文檔元素的過程將和 script.js的加載并行進(jìn)行(異步),但是 script.js的執(zhí)行要在所有元素解析完成之后熔恢,DOMContentLoaded事件觸發(fā)之前完成脐湾。
** 區(qū)別 ** async雖然加載異步,但是執(zhí)行沒有順序叙淌。defer 加載異步秤掌,但是執(zhí)行在所有元素解析完成之后。所以一旦頁面渲染依賴該script腳本鹰霍,則不可用async闻鉴,只能用defer。

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

瀏覽器的通常渲染過程:

  1. 瀏覽器解析html源碼茂洒,然后創(chuàng)建一個 DOM樹孟岛。
  2. 瀏覽器解析CSS代碼,計算出最終的樣式數(shù)據(jù)督勺,創(chuàng)建一個CSSOM樹渠羞。解析CSS的時候會按照如下順序來定義優(yōu)先級:瀏覽器默認(rèn)設(shè)置,用戶設(shè)置玷氏,外鏈樣式堵未,內(nèi)聯(lián)樣式,html中的style盏触。
  3. 構(gòu)建出DOM樹渗蟹,并且計算出樣式數(shù)據(jù)后,下一步就是構(gòu)建一個渲染樹(rendering tree)赞辩。
  4. 一旦渲染樹創(chuàng)建好了雌芽,瀏覽器就可以根據(jù)渲染樹直接把頁面繪制到屏幕上。

** DOM樹和渲染樹的區(qū)別 **

  • 每一個html標(biāo)簽對應(yīng)一個DOM節(jié)點辨嗽,每一個文本也會有一個文本節(jié)點世落,DOM樹的根節(jié)點就是 documentElement,對應(yīng)節(jié)點是html標(biāo)簽糟需。
  • 渲染樹會忽略掉不需要渲染的元素屉佳,比如head谷朝、display:none的元素等。而且一大段文本中的每一個行在渲染樹中都是獨立的一個節(jié)點武花。渲染樹中的每一個節(jié)點都存儲有對應(yīng)的css屬性圆凰。

參考文章:瀏覽器渲染頁面的過程,以及重繪和重排

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

JS定義了兩大類數(shù)據(jù)類型
簡單類型

  • Number (數(shù)字類型)
  • String(字符串類型)
  • Boolean(布爾類型)
  • Null
  • Undefined
    復(fù)雜類型
  • Object
    • Array(數(shù)組)
    • Function(函數(shù))
    • object (狹義對象)

NaN体箕、undefined专钉、null分別代表什么?

  • NaN not a number 非數(shù)字類型


    NaN
  • undefined 只聲明未賦值,沒有初始化


    undefined
  • null 空類型,指不存在的東西累铅;空指針,未指向任何內(nèi)容,可用于取消對象的引用跃须。


    undefined和null

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

** typeof 運算符返回一個用來表示表達(dá)式的數(shù)據(jù)類型的 字符串 **。判斷一個變量的類型常常會用 typeof 運算符娃兽,但無論引用的是什么類型的對象菇民,它都返回 “object”。

typeof

關(guān)于typeof字符串

** instanceof **它是用來判斷對象是否是某個類型的實例换薄,它返回的是一個布爾值玉雾;是 JavaScript 語言中原生的用來判斷實例繼承關(guān)系的操作符。


instanceof常規(guī)用法

參考文章JavaScript instanceof 運算符深入剖析

代碼題

1.代碼一題

判斷一個變量是否是數(shù)字轻要、字符串、布爾垦缅、函數(shù)

2.代碼二題

console.log(1+1); //2
console.log("2"+"4"); //"24"(字符串join)
console.log(2+"4"); //"24"(2轉(zhuǎn)換成字符串然后join)
console.log(+new Date());//1467943817909(用new Date() 會轉(zhuǎn)換為從1970.1.1開始的毫秒數(shù))
console.log(+"4");//4

3.代碼三題

var a = 1;//賦值
a+++a;//(a++)+a=1+2=3;a=2
typeof a+2;//number2(其中typeof 比+優(yōu)先級高冲泥,+是連接符號,如果變成-等運算符號壁涎,就會輸出NaN)
typeof 示例

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


遍歷var arr = [3,4,5]輸出每一項平方

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


遍歷JSON并輸出

6.下面代碼的輸出是? 為什么?
console.log(a);//undefined,變量聲明提前怔球,未賦值
var a = 1;
console.log(a);//1
console.log(b);//報錯,不存在

** 本教程版權(quán)歸博主和饑人谷所有嚼酝,轉(zhuǎn)載須說明來源。**

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末竟坛,一起剝皮案震驚了整個濱河市闽巩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌担汤,老刑警劉巖涎跨,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異崭歧,居然都是意外死亡隅很,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門率碾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叔营,“玉大人屋彪,你說我怎么就攤上這事∪拮穑” “怎么了畜挥?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長垒酬。 經(jīng)常有香客問我砰嘁,道長,這世上最難降的妖魔是什么勘究? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任矮湘,我火速辦了婚禮,結(jié)果婚禮上口糕,老公的妹妹穿的比我還像新娘缅阳。我一直安慰自己,他們只是感情好景描,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布十办。 她就那樣靜靜地躺著,像睡著了一般超棺。 火紅的嫁衣襯著肌膚如雪向族。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天棠绘,我揣著相機(jī)與錄音件相,去河邊找鬼。 笑死氧苍,一個胖子當(dāng)著我的面吹牛夜矗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播让虐,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼紊撕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了赡突?” 一聲冷哼從身側(cè)響起对扶,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎麸俘,沒想到半個月后辩稽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡从媚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年逞泄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡喷众,死狀恐怖各谚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情到千,我是刑警寧澤昌渤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站憔四,受9級特大地震影響膀息,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜了赵,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一潜支、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧柿汛,春花似錦冗酿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至貌笨,卻和暖如春弱判,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背锥惋。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工裕循, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人净刮。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像硅则,于是被迫代替她去往敵國和親淹父。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案怎虫? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,728評論 1 92
  • 在線閱讀 http://interview.poetries.top[http://interview.poetr...
    程序員poetry閱讀 114,255評論 24 450
  • 前端開發(fā)面試知識點大綱: HTML&CSS: 對Web標(biāo)準(zhǔn)的理解暑认、瀏覽器內(nèi)核差異、兼容性大审、hack蘸际、CSS基本功:...
    秀才JaneBook閱讀 2,328評論 0 25
  • 17 星期六 2017年6月 我當(dāng)然知道沒有必要。畢竟我們有多久都沒聯(lián)系了徒扶,但是粮彤,還是很沒有出息。 你不會理解一個...
    簡安在這里閱讀 592評論 0 0
  • 對于80后來說,很多人青春期接觸的第一部日劇导坟,就是《東京愛情故事》屿良。美好的赤名莉香,愛得純粹惫周,愛得癡狂尘惧,屬于她的愛...
    小綾閱讀 866評論 0 1