任務(wù)16 js語法-簡答題

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

  • 一般而言妥凳,CSS放置在網(wǎng)頁文檔的頭部,JS放置在網(wǎng)頁文檔的后面答捕,CSS放在文檔的頭部逝钥,能夠確保用戶更早的看到頁面,提高用戶體驗(yàn),但缺陷是若放置的CSS文件過多艘款,過大持际,會(huì)延長屏幕的白屏?xí)r間,同時(shí)也有時(shí)引入插件哗咆,也需要把JS放在頭部蜘欲,如Jquery的引入,一般放在頭部晌柬,因?yàn)楹竺娴腏S代碼依賴于jquery.
  • 原因是由于瀏覽器的解析方式是自上而下的加載html文檔姥份,CSS是并行加載,而JS是阻塞加載年碘,會(huì)影響頁面的加載速度澈歉,如果JS的文件較大,很容易出現(xiàn)FOCU的現(xiàn)象屿衅,并且JS還有可能修改DOM埃难,JS的執(zhí)行可能依賴于最新的樣式,這樣需要保證在JS代碼執(zhí)行前必須所有的CSS樣式加載和解析完畢涤久。
  • 綜上涡尘,CSS和JS的放置順尋根本目的是為了提高頁面的加載速度,所以必要的CSS和JS放置在頭部响迂,把不重要的CSS和js放在底部考抄。
  • 一般放置方式,如圖:
    ![1%B(5Q5]F1W42EZV(IS4H{O.png](http://upload-images.jianshu.io/upload_images/3361706-29f43a7a55b85de3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  • 引用jQuery等庫時(shí):


    KX~OD87Z)TTQT_7)FP`HN%T.png

2.解釋白屏和FOUC

  • 白屏與無樣式內(nèi)容閃爍(FOUC)是因?yàn)椴煌瑸g覽器加載與顯示頁面的機(jī)制不同而造成的
  • 白屏:如果把樣式放在底部,對(duì)于IE瀏覽器,在某些場(chǎng)景下(新窗口打開,刷新等)頁面會(huì)出現(xiàn)白屏,而不是內(nèi)容逐步展現(xiàn)如果使用 @import標(biāo)簽,即使 CSS 放入 link, 并且放在頭部,也可能出現(xiàn)白屏。這是由于優(yōu)先解析@import標(biāo)簽的文件少态,若文件過大,過大,就會(huì)導(dǎo)致加載時(shí)間過長严蓖,產(chǎn)生白屏。
  • FOUC:全稱無樣式閃爍活玲,把樣式放在頁面底部瞒津,IE瀏覽器下點(diǎn)擊點(diǎn)擊鏈接會(huì)出現(xiàn)FOUC現(xiàn)象,F(xiàn)irfox會(huì)一直白屏来氧。一種情況是由于將JS放在底部诫给,會(huì)阻塞后面內(nèi)容的呈現(xiàn)和其后組件的下載,產(chǎn)生FOUC現(xiàn)象啦扬;

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

  • 一般情況下JS文件沒有async和defer,會(huì)立即加載文件并解析扑毡,不扥帶后面的文件的加載胃榕,即讀到就執(zhí)行,有了async和defer可以實(shí)現(xiàn)異步加載瞄摊, async加載和渲染后續(xù)文檔元素的過程將和 script.js 的加載與執(zhí)行并行進(jìn)行(異步)勋又, defer加載后續(xù)文檔元素的過程將和 script.js 的加載并行進(jìn)行(異步)苦掘,但 script.js 的執(zhí)行要在所有元素解析完成之后,DOMContentLoaded 事件觸發(fā)之前完成楔壤,最終目的提高頁面的加載速度和流暢性鹤啡。使用方式如下:<script async src="app.js></script>,<script defer src="app.js></script>
  • 二者的區(qū)別是,defer的JS文件延遲到文檔解析和顯示有先后順序蹲嚣,async不保證順序递瑰。

4.網(wǎng)頁的渲染機(jī)制

  1. 解析 HTML 標(biāo)簽, 構(gòu)建 DOM 樹
  2. 解析 CSS 標(biāo)簽, 構(gòu)建 CSSOM 樹
  3. 把 DOM 和 CSSOM 組合成 渲染樹 (render tree)
  4. 在渲染樹的基礎(chǔ)上進(jìn)行布局, 計(jì)算每個(gè)節(jié)點(diǎn)的幾何結(jié)構(gòu)
  5. 把每個(gè)節(jié)點(diǎn)繪制到屏幕上 (painting)
  6. 渲染機(jī)制圖:
    ![VA4BMG]D4O]@GLMI`K0W5.png](http://upload-images.jianshu.io/upload_images/3361706-f118a4320e6d5c10.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

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

  • 數(shù)據(jù)類型有6種
  • 簡單類型5種,null, undefined,boolean,string,number
  • 復(fù)雜類型1種隙畜,object
  • 簡單類型中抖部,undefined指的是變量未被賦值時(shí),表示“未定義”或不存在禾蚕,即此處目前沒有任何值您朽,會(huì)出現(xiàn)undefined,null是空值,不等同于undefined换淆,空值表示空缺哗总,即此處應(yīng)該有一個(gè)值,但目前為空倍试,而undefined只是沒有賦值讯屈,不存在,所以二者不同
  • boolean县习,即布爾邏輯值涮母,就是經(jīng)常可見的false和true
  • number ,即數(shù)字躁愿,如1,2,3
  • string叛本,字符串,如“hello world”
  • object彤钟,對(duì)象来候,如“ var obj={name:"小明",age:10}”

6.NaN、undefined逸雹、null分別代表什么?

  • NaN含義是Not a Number营搅,表示非數(shù)字,NaN和任何值都不相等梆砸,包括自己转质,undefined:表示“未定義”或不存在,即此處目前沒有任何值帖世,null:表示空缺休蟹,即此處應(yīng)該有一個(gè)值,但目前為空,
  • 類型不同鸡挠,NaN是一中number類型辉饱,null屬于特殊的object,undefinded屬于undefined類型
  • 進(jìn)行比較運(yùn)算時(shí)拣展,非嚴(yán)格相等情況下:undefined==null,NaN與任何值都不相等彭沼,與自己也不相等。

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

  • typeof 運(yùn)算符可以返回一個(gè)值的數(shù)據(jù)類型,,可以是任意類型备埃,如type 100 //"number"
  • instanceof運(yùn)算符:此運(yùn)算符可以判斷一個(gè)變量是否是某個(gè)對(duì)象(類)的實(shí)例姓惑,返回值是布爾類型的,如var str=new String("hello");console.log(str instanceof String)代碼輸出的結(jié)果為true,因?yàn)閟tr是對(duì)象String的對(duì)象實(shí)例。一般說來只有使用構(gòu)造函數(shù)創(chuàng)建的對(duì)象才會(huì)返回true按脚,否則返回false于毙,不過數(shù)組是一個(gè)例外,都會(huì)返回true.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末辅搬,一起剝皮案震驚了整個(gè)濱河市唯沮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌堪遂,老刑警劉巖介蛉,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異溶褪,居然都是意外死亡币旧,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門猿妈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吹菱,“玉大人,你說我怎么就攤上這事彭则△⑺ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵俯抖,是天一觀的道長倾剿。 經(jīng)常有香客問我,道長蚌成,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任凛捏,我火速辦了婚禮担忧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘坯癣。我一直安慰自己瓶盛,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惩猫,像睡著了一般芝硬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上轧房,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天拌阴,我揣著相機(jī)與錄音,去河邊找鬼奶镶。 笑死迟赃,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的厂镇。 我是一名探鬼主播纤壁,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼捺信!你這毒婦竟也來了酌媒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤迄靠,失蹤者是張志新(化名)和其女友劉穎秒咨,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梨水,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拭荤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疫诽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舅世。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖奇徒,靈堂內(nèi)的尸體忽然破棺而出雏亚,到底是詐尸還是另有隱情,我是刑警寧澤摩钙,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布罢低,位于F島的核電站,受9級(jí)特大地震影響胖笛,放射性物質(zhì)發(fā)生泄漏网持。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一长踊、第九天 我趴在偏房一處隱蔽的房頂上張望功舀。 院中可真熱鬧,春花似錦身弊、人聲如沸辟汰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帖汞。三九已至戴而,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間翩蘸,已是汗流浹背所意。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鹿鳖,地道東北人扁眯。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像翅帜,于是被迫代替她去往敵國和親姻檀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

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

  • 學(xué)習(xí)內(nèi)容:JavaScript基本概念涝滴,基礎(chǔ)數(shù)據(jù)類型绣版,運(yùn)算符,流程控制語句 一歼疮、CSS和JS在網(wǎng)頁中的放置順序是怎...
    鴻鵠飛天閱讀 494評(píng)論 0 0
  • 問答: 1. CSS和JS在網(wǎng)頁中的放置順序是怎樣的杂抽? CSS一般放置在的 標(biāo)簽中。網(wǎng)頁渲染時(shí)韩脏,先解析HTML標(biāo)簽...
    小木子2016閱讀 430評(píng)論 0 0
  • JavaScript基本概念缩麸、基礎(chǔ)數(shù)據(jù)類型、運(yùn)算符赡矢、流程控制語句杭朱。 一、CSS和JS在網(wǎng)頁中的放置順序是怎樣的吹散? ...
    婷樓沐熙閱讀 430評(píng)論 0 2
  • 1. CSS和JS在網(wǎng)頁中的放置順序是怎樣的弧械? css放在head標(biāo)簽里 js放在body標(biāo)簽的最后主要是為了避免...
    mint9602閱讀 347評(píng)論 0 0
  • 概念 1、CSS和JS在網(wǎng)頁上的放置順序是怎樣的空民? 將CSS放在head標(biāo)簽中:CSS放在后面會(huì)造成白屏或者FOU...
    周花花啊閱讀 431評(píng)論 1 1