JavaScript基礎(chǔ)知識復(fù)習(xí)
-
JavaScript包含:
- ECMAScript:規(guī)定js的語法規(guī)范;
- DOM:Document Object Model,提供了一套操作dom元素的API(application programming interface);
- BOM:瀏覽器對象模型,操作瀏覽器對象的api。
JavaScript的基本數(shù)據(jù)類型有:number、string、boolean、undefined。
-
JavaScript的復(fù)雜數(shù)據(jù)類型(引用類型)有:Array、Date、Object、Regexp、Function、String、Number、Boolean;兩個核心類型:Object、Function;還有兩個空類型:undefined、null(object類型)。
- 變量不可能為null值,除非手動去設(shè)置,解除對象的占用(引用)。
獲取一個數(shù)據(jù)的數(shù)據(jù)類型:
typeof xxx;
,使用該運(yùn)算符返回的結(jié)果是string類型。-
JavaScript中 === 和 == 有什么區(qū)別:
- ==:判斷值是否相等;
- ===:判斷值和類型是否都相等。
-
JavaScript中in運(yùn)算符有什么作用:
- 最常用在for in循環(huán)中,遍歷對象的鍵(對象中鍵為字符串類型);
- 判斷屬性是否存在于對象中,語法
屬性名 in 對象;
(屬性名應(yīng)該是字符串); - 注意:in關(guān)鍵字操作數(shù)組時,獲取到的是索引值(下標(biāo)),不是值;判斷數(shù)組中是否存在指定值:用for循環(huán)、arr.indexOf(xxx)。
JavaScript中關(guān)系運(yùn)算符有:>=、<=、>、<、=。
創(chuàng)建對象使用什么運(yùn)算符:new。
-
什么是引用類型:存儲的是數(shù)據(jù)在內(nèi)存中的地址,數(shù)據(jù)在內(nèi)存中單獨(dú)存儲,這就是引用類型數(shù)據(jù);
-
什么是值類型:存儲的就是數(shù)據(jù)本身的變量就是值類型。
- 所有引用類型的類型都是object類型,除了function打印出來的是function類型。
- 變量一般存儲在內(nèi)存中;
- 引用類型賦值:是將變量中存儲的地址復(fù)制一份單獨(dú)存儲,但是兩個變量共享同一個地址;通過一個變量修改對象中的內(nèi)容,另外一個引用訪問的時候,也會訪問到修改后的對象。
-
做函數(shù)參數(shù):
- 值類型做函數(shù)的參數(shù):函數(shù)內(nèi)部的變量,也就是形參,和實(shí)參只是簡單的賦值操作,兩個數(shù)據(jù)獨(dú)立存儲于內(nèi)存中;在函數(shù)內(nèi)部對形參進(jìn)行修改,不會影響外面的變量。
- 引用類型做函數(shù)的參數(shù):是把實(shí)參存儲的地址賦值給了形參,在函數(shù)內(nèi)部,形參同樣也指向該對象,所以在函數(shù)內(nèi)部對該對象進(jìn)行修改,會影響到外面的變量。
注:如果引用類型做函數(shù)的參數(shù)時,如果在函數(shù)內(nèi)部重新創(chuàng)建對象,為該形參賦值,那么兩個對象將不再有關(guān)系,修改其中一個,另外一個不會受到影響。
對象的動態(tài)特性:指在對象創(chuàng)建出來之后,可以再為對象添加新的屬性或者方法。
使用點(diǎn)語法給對象屬性賦值,如果對象存在該屬性,是修改操作;如果對象不存在該屬性,那么就是給該對象增加新的屬性并且賦值;同樣效果的還有使用中括號。
-
-
什么叫邏輯中斷:
- 表達(dá)式1 || 表達(dá)式2:
- 如果表達(dá)式1為真,返回表達(dá)式1的值;
- 如果表達(dá)式1為假,返回表達(dá)式2的值。
- 表達(dá)式1 && 表達(dá)式2:
- 如果表達(dá)式1為真,返回表達(dá)式2的值;
- 如果表達(dá)式1為假,返回表達(dá)式1的值。
- 表達(dá)式1 || 表達(dá)式2:
-
delete運(yùn)算符的作用是什么:
- 可以用來刪除對象的屬性,還可以刪除未使用var聲明的變量(window的屬性或者說是全局變量):
delete obj[name];
; - delete關(guān)鍵字有返回值,用來表示刪除屬性是否成功;
- 如果刪除一個對象不存在的屬性,返回值也為true;
- 如果刪除的屬性存在于原型當(dāng)中,那么返回值為true,但是該屬性并未被刪除。
- 可以用來刪除對象的屬性,還可以刪除未使用var聲明的變量(window的屬性或者說是全局變量):
循環(huán)有幾種:for、for in、while、do while。
分支語句有幾種:if else、switch case。
-
跳轉(zhuǎn)語句中break和continue的區(qū)別:
- continue跳過本次循環(huán);
- break跳出最近一層的循環(huán)。
調(diào)試工具
調(diào)試窗口介紹
- 指針:選擇頁面中的元素;
- 手機(jī):使用移動端界面調(diào)試;
- element:查看頁面DOM樹;
- console:控制臺(注:控制臺與該頁面是一個整體,在控制臺中的任何操作,都會影響到頁面);
- Source:代碼調(diào)試。
定義函數(shù)
- 定義函數(shù)的基本語法:三種
- 函數(shù)聲明:
function 函數(shù)名(){//函數(shù)體}
- 函數(shù)表達(dá)式:在使用函數(shù)表達(dá)式聲明函數(shù)的時候,function后面可以跟函數(shù)名,但是這個函數(shù)名只能在函數(shù)內(nèi)部使用,外部無法訪問。
var test = function 函數(shù)名(){//函數(shù)體}
test();
- Function
var test = new Function();
元素節(jié)點(diǎn)操作:
增
- 創(chuàng)建文本節(jié)點(diǎn):createElement、createTextNode;
- appendChild、insertBefore、。
刪
- removeChild。
改
- replaceChild;
查
- getElementById;
- getElementsByTagName;
- getElementsByClassName,有兼容性問題。
屬性節(jié)點(diǎn)操作
- getAttribute、setAttribute、removeAttribute。
常用DOM屬性
- className、innerHTML、innerText/textContent、value、children
異常處理
- 異常最大的特征:就是一旦出現(xiàn)異常,后面的代碼就不會再被執(zhí)行,為了保證后面的代碼在出現(xiàn)異常之后能繼續(xù)執(zhí)行,就要進(jìn)行異常處理;
- 語法:
try{
//可能會出現(xiàn)異常的代碼
//可以進(jìn)行手動拋出異常,使用throw
throw "你的代碼有一點(diǎn)小問題喲";
}
catch(e){
//捕獲異常,e為捕獲到的異常信息
//出現(xiàn)異常時的處理代碼
}
finally{
//無論是否出現(xiàn)異常,都會執(zhí)行
//node.js使用的較多,一般在這里做釋放資源的一些操作
}
- 注:語法異常不能捕獲,因?yàn)閖s代碼執(zhí)行分為兩個階段:解析階段(檢測語法)和執(zhí)行階段。