JS入門知識

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

  • css一般放在html中的head標(biāo)簽之中,一般在meta和title標(biāo)簽之后
    頁面渲染首先是根據(jù)DOM結(jié)構(gòu)生成一個DOM樹,然后加上css樣式生成一個渲染樹,如果將css放在最后,頁面可能會出現(xiàn)閃跳、白屏或樣式混亂等。

  • js一般放在body標(biāo)簽的最后,也就是</body>之前
    js是阻塞加載的,若是放在前面,會影響頁面的加載速度,若是js文件過大,這種影響就會更大,可以使用異步加載的方法來解決阻塞加載的問題。

  • 簡單而言,以這種方式來放置css和js,可以讓頁面的內(nèi)容更早,更快的被加載出來。

二、解釋白屏和FOUC

在不同瀏覽器對css和html的處理方式不同,一種是等待css加載完成后,對html
進(jìn)行渲染并顯示,有的是先對html元素進(jìn)行展示,等css加載完成之后,再對html進(jìn)行樣式的設(shè)置;前者會造成白屏,后者則會造成FOUC。

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

  • async---異步腳本,作用是:告訴瀏覽器立刻下載其指定的js,與此同時會同步加載頁面的內(nèi)容部分,不會因?yàn)閖s的存在而導(dǎo)致瀏覽器必須先下載并執(zhí)行js后再加載后面的內(nèi)容;(因此建議異步腳本不要在加載期間修改DOM)

  • defer--延遲腳本,作用是遇到j(luò)s時立即下載,但延遲到</html>之前的內(nèi)容全部加載完后再執(zhí)行;這樣不會因此js的存在導(dǎo)致阻塞了后面的頁面內(nèi)容的呈現(xiàn)

區(qū)別:
1、執(zhí)行時間不一樣:async的js在下載完后會立即執(zhí)行(因此腳本在代碼中的順序并不是腳本所執(zhí)行的先后順序,有可能后面出現(xiàn)的腳本先執(zhí)行),但defer則要等待整個頁面內(nèi)容及樣式全部加載完后再執(zhí)行;(HTML5規(guī)范要求腳本執(zhí)行應(yīng)該按照腳本出現(xiàn)的先后順序執(zhí)行,但實(shí)際情況下,延遲腳本不一定按照先后順序執(zhí)行。
2、HTML版本不一樣:html的版本html4.0中定義了defer;html5.0中定義async;
3、瀏覽器支持情況不一樣

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

(1).根據(jù)URL向服務(wù)器請求數(shù)
(2).根據(jù)來自服務(wù)器端的HTML形成文檔對象模型,即DOM
(3).加載并解析css樣式代碼,形成css對象模型。
(4).在DOM和css對象模型上,創(chuàng)建一棵由一組待生成渲染的渲染樹,,渲染樹反應(yīng)了文檔對象模型的結(jié)構(gòu),其中的每一段文本字符串都表現(xiàn)為一個獨(dú)立的渲染器,每一個渲染器都包含與之對應(yīng)的DOM對象,文本塊和之前所計算出來的樣式。
(5).對渲染樹上的每一個元素,計算它的坐標(biāo),稱為布局。
(6).最后,渲染書中所包含的內(nèi)容顯示在瀏覽器上。
(7).當(dāng)用戶與網(wǎng)頁交互,或者腳本程序操作DOM內(nèi)容等,上述過程就會重新再來一次。

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

ECMAScript中規(guī)定了7種數(shù)據(jù)類型,包括6中原始數(shù)據(jù)類型和object。
1.Boolean 布爾類型;其中有兩個值:true false
2.Null 空值(null or an empty value);只有一個值 null
3.undefined 一個已經(jīng)被聲明,但沒有被賦值的變量擁有一個默認(rèn)值,就是undefined undefined(首字母小寫)是它唯一的值
4.String 字符串類型,用于表示文本數(shù)據(jù),它的索引值從0開始。
5.Number 在ECMAScript標(biāo)準(zhǔn)中,只有一種數(shù)字類型,即Number,它包括了整數(shù)
、浮點(diǎn)數(shù)、正負(fù)Infinity和NaN
6.Symbol 符號類型,是在ECMAScript中新增的一個類型,它是唯一的,也是不
可修改的。
7.object 對象類型,它是內(nèi)存中可以被標(biāo)識符引用的一個區(qū)域

六、NaN、undefined、null分別代表什么?

  • NaN not a number,它是一個Number類型的值,但是不能被表示出來,另外需要注意的一點(diǎn)是,它和自己本身并不相等。
  • undefined 一個已經(jīng)被聲明,但沒有被賦值的元素有一個默認(rèn)值,就是undefined,一個沒有傳入實(shí)參的形參的值也是undefined,如果一個被定義的函數(shù)沒有返回值,那么它的返回值也是undefined。
  • null 空值,是JavaScript中的一個字面量,也是JavaScript的原始值之一

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

兩者均能判斷一個變量是否為空或者是什么類型的變量。

  • typeof:用于獲取一個數(shù)據(jù)的類型,它所返回的結(jié)果一般有:boolean,number、string、function、object和undefined,它對于Array、null和其他對
    象的返回值均為object,這也是它的局限性

  • instanceof:如果希望知道一個對象是數(shù)組還是空值或者是其他的對象,就用
    到了這個函數(shù),instanceof用于判斷某個變量是否是某個對象的實(shí)例,它要求明
    確確定對象為某個特定類型,而不是籠統(tǒng)的object

  • 此外,typeof是一個一元運(yùn)算符,放在運(yùn)算數(shù)的前面,以判斷類型,而
    instanceof則是一個二元運(yùn)算符,它的返回值是一個布爾值。

代碼任務(wù)一

代碼任務(wù)二:
console.log(1+1); //數(shù)字2
console.log("2"+"4"); //字符串24
console.log(2+"4"); //字符串24
console.log(+new Date());//轉(zhuǎn)成毫秒
console.log(+"4");//數(shù)字4

代碼任務(wù)三:
var a = 1;
a+++a; // 3 首先a++運(yùn)算后,a++依然是1,但a已經(jīng)變成2,即1+2=3
typeof a+2; //number2 typeof的優(yōu)先級高,所以首先判斷typeof a 結(jié)果是number,再+2,完成一個字符串的拼接.

代碼任務(wù)四:
arr = [3,4,5];
for(i in arr){console.log(arr[i]*arr[i]);

代碼任務(wù)五:
var obj = {
name : 'hunger',
sex : 'male',
age : 28
}
for(i in obj){
console.log(obj[i]);
}

代碼任務(wù)六:
console.log(a); // undefined 由于變量提升,所以a已經(jīng)被聲明
var a = 1;
console.log(a); // 1
console.log(b); // 報錯 b is not define

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • * 基礎(chǔ)知識 * js的輸出方式 * js的組成 * js的命名規(guī)范 * 數(shù)據(jù)類型 * number數(shù)據(jù)類型 * ...
    web前端ling閱讀 1,212評論 0 2
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,168評論 1 92
  • <a name='html'>HTML</a> Doctype作用?標(biāo)準(zhǔn)模式與兼容模式各有什么區(qū)別? (1)、<...
    clark124閱讀 3,843評論 1 19
  • 1. 簡介 毫無疑問,Java 8是Java自Java 5(發(fā)布于2004年)之后的最重要的版本。這個版本包含語言...
    javaBoy_hw閱讀 334評論 0 0
  • 晴空萬里,清邁難得的沒有下雨。 “小敏,我們出去找點(diǎn)樂子吧” “走......” 所謂的樂子就是漫無目的的在清邁古...
    JJGreamgirls閱讀 436評論 0 0

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