JS語(yǔ)法

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

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

2.解釋白屏和FOUC

  • 白屏:如果把樣式放在底部,對(duì)于某些場(chǎng)景的IE瀏覽器下印叁,頁(yè)面會(huì)出現(xiàn)白屏被冒,而不是內(nèi)容逐步呈現(xiàn)军掂,如果使用@import標(biāo)簽也會(huì)白屏。當(dāng)把JS文件放在頂部姆打,因?yàn)镴S腳本加載時(shí)會(huì)阻止后面內(nèi)容的呈現(xiàn)以及其組件的下載良姆,所以也會(huì)發(fā)生白屏。
  • FOUC(無(wú)樣式內(nèi)容閃爍):如果把CSS樣式放在底部幔戏,對(duì)于某些場(chǎng)景下的IE瀏覽器玛追,會(huì)出現(xiàn)FOUC(先逐步加載HTML內(nèi)容,等CSS加載完成時(shí)突然出現(xiàn)樣式)對(duì)于Firefox瀏覽器則會(huì)一直發(fā)生FOUC闲延。
3.async和defer的作用是什么痊剖?有什么區(qū)別

答:

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

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

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

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

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

答:

  • 字符串:是存儲(chǔ)字符的變量例如:abcd。
  • 數(shù)值:整數(shù)和小數(shù)怀估。
  • 布爾值:只有ture跟false兩個(gè)特定值狮鸭。
  • null:表示空缺,此處應(yīng)有一個(gè)值但現(xiàn)在為空多搀。
  • underfined:表示未定義不存在歧蕉,此處沒(méi)有任何值。
  • 對(duì)象object:各種值組成的集合康铭。
    簡(jiǎn)單類(lèi)型:字符串惯退、布爾值、數(shù)值从藤、null催跪、underfined。
    復(fù)雜類(lèi)型:對(duì)象夷野。
6.NaN叠荠、undefined、null分別代表什么?

答:NaN:表示not a number扫责,表示非數(shù)字,它與任何數(shù)值都不相等逃呼,包括他自己鳖孤。
null:此處應(yīng)該有一個(gè)值,但是目前為空抡笼,會(huì)自動(dòng)轉(zhuǎn)化為“0”苏揣,如果一個(gè)變量將用來(lái)保存對(duì)象,那應(yīng)該保存為nall推姻。
underfined:如果一個(gè)變量給它聲明了但是沒(méi)有賦值平匈,那這個(gè)變量的值就是underfined,轉(zhuǎn)化為NaN

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

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

  • typeof是一個(gè)一元運(yùn)算,放在一個(gè)運(yùn)算數(shù)之前拧晕,運(yùn)算數(shù)可以是任何類(lèi)型隙姿。它的返回值是一個(gè)字符串,該字符串說(shuō)明運(yùn)算數(shù)的類(lèi)型typeof 一般只能返回如下幾個(gè)結(jié)果:number,boolean,string,function,object,undefined厂捞。typeof返回的值都是object输玷,而且具有局限性队丝。
  • instanceof是一個(gè)二元運(yùn)算,用于判斷一個(gè)變量是否某個(gè)對(duì)象的實(shí)例欲鹏,返回值是一個(gè)布爾值机久。

代碼:
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沒(méi)有被聲明所以報(bào)錯(cuò)。

**本文版權(quán)歸本人和饑人谷所有尽狠,轉(zhuǎn)載請(qǐng)注明來(lái)源衔憨。**
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市袄膏,隨后出現(xiàn)的幾起案子践图,更是在濱河造成了極大的恐慌,老刑警劉巖沉馆,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件码党,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡斥黑,警方通過(guò)查閱死者的電腦和手機(jī)揖盘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)锌奴,“玉大人兽狭,你說(shuō)我怎么就攤上這事÷故瘢” “怎么了箕慧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)茴恰。 經(jīng)常有香客問(wèn)我颠焦,道長(zhǎng),這世上最難降的妖魔是什么往枣? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任伐庭,我火速辦了婚禮,結(jié)果婚禮上分冈,老公的妹妹穿的比我還像新娘圾另。我一直安慰自己,他們只是感情好雕沉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開(kāi)白布盯捌。 她就那樣靜靜地躺著,像睡著了一般蘑秽。 火紅的嫁衣襯著肌膚如雪饺著。 梳的紋絲不亂的頭發(fā)上箫攀,一...
    開(kāi)封第一講書(shū)人閱讀 51,215評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音幼衰,去河邊找鬼靴跛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛渡嚣,可吹牛的內(nèi)容都是我干的梢睛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼识椰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼绝葡!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起腹鹉,我...
    開(kāi)封第一講書(shū)人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤藏畅,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后功咒,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體愉阎,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年力奋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了榜旦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡景殷,死狀恐怖溅呢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情猿挚,我是刑警寧澤咐旧,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站亭饵,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏梁厉。R本人自食惡果不足惜辜羊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望词顾。 院中可真熱鬧八秃,春花似錦、人聲如沸肉盹。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)上忍。三九已至骤肛,卻和暖如春纳本,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背腋颠。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工繁成, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人淑玫。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓巾腕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親絮蒿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子尊搬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

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

  • JavaScript基本概念、基礎(chǔ)數(shù)據(jù)類(lèi)型土涝、運(yùn)算符佛寿、流程控制語(yǔ)句。 一回铛、CSS和JS在網(wǎng)頁(yè)中的放置順序是怎樣的狗准? ...
    婷樓沐熙閱讀 437評(píng)論 0 2
  • 1.CSS和JS在網(wǎng)頁(yè)中的放置順序是怎樣的? css一般放在頭部head標(biāo)簽中茵肃,網(wǎng)頁(yè)渲染時(shí)腔长,先解析html標(biāo)簽,生...
    _Josh閱讀 354評(píng)論 0 1
  • 1. CSS和JS在網(wǎng)頁(yè)中的放置順序是怎樣的验残? 理論上來(lái)說(shuō)捞附,CSS和JS的放置位置并沒(méi)有嚴(yán)格要求,不過(guò)因?yàn)闉g覽器的...
    進(jìn)擊的阿群閱讀 450評(píng)論 0 2
  • 問(wèn)答 1.CSS和JS在網(wǎng)頁(yè)中的放置順序是怎樣的您没? 一般把css放在 標(biāo)簽內(nèi)鸟召, 標(biāo)簽的后面;js放在 標(biāo)簽的尾部氨鹏。...
    墨月千樓閱讀 643評(píng)論 0 0
  • CSS和JS在網(wǎng)頁(yè)中的放置順序是怎樣的欧募? CSS以link方式放在頭部,否則有可能出現(xiàn)白屏或者FOUC(無(wú)樣式內(nèi)容...
    咸吧閱讀 546評(píng)論 1 0