JS語法

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

答:CSS一般放在<head>中,而JS一般放置在<body>最下面。

2.解釋白屏和FOUC

  • 白屏:如果把樣式放在底部,對于某些場景的IE瀏覽器下,頁面會出現(xiàn)白屏,而不是內(nèi)容逐步呈現(xiàn),如果使用@import標(biāo)簽也會白屏。當(dāng)把JS文件放在頂部,因為JS腳本加載時會阻止后面內(nèi)容的呈現(xiàn)以及其組件的下載,所以也會發(fā)生白屏。
  • FOUC(無樣式內(nèi)容閃爍):如果把CSS樣式放在底部,對于某些場景下的IE瀏覽器,會出現(xiàn)FOUC(先逐步加載HTML內(nèi)容,等CSS加載完成時突然出現(xiàn)樣式)對于Firefox瀏覽器則會一直發(fā)生FOUC。
3.async和defer的作用是什么?有什么區(qū)別

答:

  • 沒有async和defer的時候,瀏覽器會立即加載執(zhí)行指定腳本,立即的意思是渲染該script標(biāo)簽之下的文檔元素前,就是不等待后續(xù)載入的文檔元素,讀到就加載并執(zhí)行。
  • 有async時,加載和渲染后續(xù)文檔時候的過程將和script.js的加載與執(zhí)行過程一起進(jìn)行(異步)。
  • 有defer,加載后續(xù)文檔元素的過程將與script.js的加載同時進(jìn)行,但是script.js的執(zhí)行只要在所有元素解析完成之后,DOMContentLoaded事件觸發(fā)之前完成。
  • 區(qū)別:async不保證順序。defer腳本延遲到文檔解析和顯示后執(zhí)行,有順序。
4.簡述網(wǎng)頁的渲染機(jī)制

答:第一步:瀏覽器在接收到服務(wù)器返回的頁面信息后,遇到解析html標(biāo)簽構(gòu)建DOM樹,遇見解析CSS標(biāo)簽構(gòu)建CSSOM樹

  • DOM:Document Object Model,瀏覽器將HTML解析成樹形的數(shù)據(jù)結(jié)構(gòu),簡稱DOM。
  • CSSOM:CSS Object Model,瀏覽器將CSS代碼解析成樹形的數(shù)據(jù)結(jié)構(gòu)。
  • DOM樹的構(gòu)建過程是一個深度遍歷過程:當(dāng)前節(jié)點的所有子節(jié)點都構(gòu)建完成好后才會去構(gòu)建當(dāng)前節(jié)點下的下一個兄弟節(jié)點。

第二步:DOM與CSSOM合成后生成Render Tree,如上圖
Render Tree和DOM一樣,以多叉樹的形式保存了每個節(jié)點的本身屬性和CSS屬性,以及其子節(jié)點。
第三步:有了Render Tree之后,瀏覽器知道了網(wǎng)頁中有哪些節(jié)點,以及各個節(jié)點的CSS定義和從屬關(guān)系,下一步我們稱之為layout就是計算出每個節(jié)點在屏幕中的位置。
第四步:瀏覽器已經(jīng)知道了哪些節(jié)點要顯示、每個節(jié)點的CSS屬性是什么,每個節(jié)點的位置在哪里,然后painting按照算出來的規(guī)則,把內(nèi)容畫到了屏幕上。

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

答:

  • 字符串:是存儲字符的變量例如:abcd。
  • 數(shù)值:整數(shù)和小數(shù)。
  • 布爾值:只有ture跟false兩個特定值。
  • null:表示空缺,此處應(yīng)有一個值但現(xiàn)在為空。
  • underfined:表示未定義不存在,此處沒有任何值。
  • 對象object:各種值組成的集合。
    簡單類型:字符串、布爾值、數(shù)值、null、underfined。
    復(fù)雜類型:對象。
6.NaN、undefined、null分別代表什么?

答:NaN:表示not a number,表示非數(shù)字,它與任何數(shù)值都不相等,包括他自己。
null:此處應(yīng)該有一個值,但是目前為空,會自動轉(zhuǎn)化為“0”,如果一個變量將用來保存對象,那應(yīng)該保存為nall。
underfined:如果一個變量給它聲明了但是沒有賦值,那這個變量的值就是underfined,轉(zhuǎn)化為NaN

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

答:tapeof和instanceof的作用都是用來判斷一個變量是否為空,或者是什么類型。他們的區(qū)別主要有:

  • typeof是一個一元運算,放在一個運算數(shù)之前,運算數(shù)可以是任何類型。它的返回值是一個字符串,該字符串說明運算數(shù)的類型typeof 一般只能返回如下幾個結(jié)果:number,boolean,string,function,object,undefined。typeof返回的值都是object,而且具有局限性。
  • instanceof是一個二元運算,用于判斷一個變量是否某個對象的實例,返回值是一個布爾值。

代碼:
1

function isNumber(el){
    // todo ...
}
function isString(el){
    //todo ...
}
function isBoolean(el){
    //todo ...
}
function isFunction(el){
    //todo ...
}

var a = 2,
    b = "jirengu",
    c = false;
alert( isNumber(a) );  //true
alert( isString(a) );  //false
alert( isString(b) );  //true
alert( isBoolean(c) ); //true
alert( isFunction(a)); //false
alert( isFunction( isNumber ) ); //true

地址
2

console.log(1+1);//輸出:2
console.log("2" + "4");//輸出:24
console.log(2 + "4");//輸出:24
console.log(+new Date());//輸出:1471341539756 
console.log(+"4");//輸出:4

3

var a = 1;
a+++a;//3
typeof a+2;//number2

4


搜狗截圖16年08月16日1959_1.png

5

var obj = {
name : 'hunger',
sex : 'male',
age : 28
}````

![搜狗截圖16年08月17日1314_2.png](http://upload-images.jianshu.io/upload_images/2487339-74c2d312f7e93e66.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
6

console.log(a);
var a = 1;
console.log(a);
console.log(b);

輸出什么 為什么?


![搜狗截圖16年08月17日1325_5.png](http://upload-images.jianshu.io/upload_images/2487339-96e0be207d89d7d9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
提升變量必須聲明變量,a聲明了所以輸出1,b沒有被聲明所以報錯。

**本文版權(quán)歸本人和饑人谷所有,轉(zhuǎn)載請注明來源。**
最后編輯于
?著作權(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)容

  • JavaScript基本概念、基礎(chǔ)數(shù)據(jù)類型、運算符、流程控制語句。 一、CSS和JS在網(wǎng)頁中的放置順序是怎樣的? ...
    婷樓沐熙閱讀 520評論 0 2
  • 1.CSS和JS在網(wǎng)頁中的放置順序是怎樣的? css一般放在頭部head標(biāo)簽中,網(wǎng)頁渲染時,先解析html標(biāo)簽,生...
    _Josh閱讀 405評論 0 1
  • 1. CSS和JS在網(wǎng)頁中的放置順序是怎樣的? 理論上來說,CSS和JS的放置位置并沒有嚴(yán)格要求,不過因為瀏覽器的...
    進(jìn)擊的阿群閱讀 518評論 0 2
  • 問答 1.CSS和JS在網(wǎng)頁中的放置順序是怎樣的? 一般把css放在 標(biāo)簽內(nèi), 標(biāo)簽的后面;js放在 標(biāo)簽的尾部。...
    墨月千樓閱讀 730評論 0 0
  • CSS和JS在網(wǎng)頁中的放置順序是怎樣的? CSS以link方式放在頭部,否則有可能出現(xiàn)白屏或者FOUC(無樣式內(nèi)容...
    咸吧閱讀 630評論 1 0

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