1.javascript的組成:
DOM:文檔對象模型。核心對象:document
BOM:瀏覽器對象模型。核心對象:window
ECMAScript:定義了js的核心語法
2.js中的數(shù)據(jù)類型:基本數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型苞尝、
基本數(shù)據(jù)類型:string number Boolean null undefined
復(fù)雜數(shù)據(jù)類型:Object對象類型
Object Array Date Function RegExp(正則表達(dá)式) Number(數(shù)值對象) String(字符串對象)Boolean
3.判斷數(shù)據(jù)的類型 typeof
格式:typeof 數(shù)值(變量)
結(jié)果:typeof 字符串 //string
? ? ? ? ? ?typeof 數(shù)值? //number
? ? ? ? ? ?typeof true/false? ? //boolean
? ? ? ? ? ?typeof undefined? ? //undefined
? ? ? ? ? ?typeof null? ? ? ? ? //object
? ? ? ? ? ?typeof 復(fù)雜數(shù)據(jù)類型? //object
? ? ? ? ? ?typeof 函數(shù)? ? ? ? ? //function
注意:typeof本身是操作符柔滔,不是函數(shù)
typeof本身有返回值,返回值是字符串類型
null和undefined的區(qū)別:
undefined:聲明了變量朋腋,但未賦值
null:變量的值永遠(yuǎn)不會為null齐疙,除非手動設(shè)置
4.邏輯運算符
邏輯非(膜楷!表達(dá)式):返回值 ? ? Boolean
邏輯與(表達(dá)式1 && 表達(dá)式2):返回值 ? ? 其中的某個表達(dá)式、
判定:檢查表達(dá)式1是否為真贞奋,若為真赌厅,返回表達(dá)式2;否則返回表達(dá)式1
邏輯非(表達(dá)式1 || 表達(dá)式2): ?返回值 ? ?其中的某個表達(dá)式
判定:檢查表達(dá)式1是否為真轿塔,若為真特愿,返回表達(dá)式1;否則返回表達(dá)式2
5.值類型和引用類型
值類型:string,number,Boolean,undefined,null
引用類型:(object類型) function,Array,Date,String
值類型和引用類型的區(qū)別:
i.存儲的位置不同勾缭。
值類型存儲在棧中揍障,值類型變量,棧中存儲的就是該變量的值俩由。
引用類型存儲在堆上毒嫡,新建一個引用類型實例,得到的變量值對應(yīng)的是該實例的內(nèi)存分配地址幻梯。
ii.值傳遞和引用傳遞不同兜畸。
值傳遞相當(dāng)于拷貝值,雖然兩個變量的值一樣碘梢,但兩個變量在棧中的存儲空間不同咬摇,所以是不同的。
引用傳遞不一樣痘系,引用類型包含的是對上數(shù)據(jù)區(qū)域地址的引用菲嘴,相當(dāng)于指針,指的是同一塊內(nèi)存區(qū)域汰翠。因此當(dāng)其中一個引用的值發(fā)生了變化龄坪,另一個指向該內(nèi)存中的值也會發(fā)生改變。
注意:javascript中复唤,字符串為值類型健田。但,字符串在復(fù)制和傳遞運算中佛纫,以引用型數(shù)據(jù)的方法做處理<司帧!
6.in關(guān)鍵字的使用
作用:(1)遍歷對象呈宇;(2)檢測對象中是否存在指定的屬性 ? ?語法: “屬性” in 對象 ? ? ? ?返回值:boolean
注意:屬性必須是字符串
在操作數(shù)組是好爬,key--索引, value--元素甥啄、
7.delete
作用:(1)刪除對象中的屬性存炮;(2)刪除沒有使用var聲明的變量
注意:(1)返回值為Boolean;
(2)不能刪除沒有使用var聲明的全局變量,但卻可以刪除直接定義在window上的屬性
(3)刪除不存在的屬性沒有反應(yīng)穆桂,返回值為true
8.javascript錯誤-throw,try和catch
try語句: ? 測試代碼塊的錯誤
catch語句: ? 語句處理錯誤
throw語句: ? 創(chuàng)建自定義錯誤(throw errObj)
errObj必須是一個Error對象或Error的子類型.
基本語法:
try{
//此處是可能產(chǎn)生例外的語句
}catch(error){
//此處是負(fù)責(zé)例外處理的語句
}finally{
//此處是出口語句
}
上面的代碼中.try塊的語句首先被執(zhí)行.如果運行中發(fā)生了錯誤,控制就會轉(zhuǎn)移到位于catch塊中語句,其中括號中的error參數(shù)被作為例外變量傳遞. 否則,catch語句就跳過不執(zhí)行. finally語句在try和catch語句執(zhí)行完后執(zhí)行.
(1)Error對象:name屬性表示例外的類型,message屬性表示例外的含義.根據(jù)這些屬性的取值,可以決定處理例外的方式.
Error.name的取值一共有六種:
Error:()的使用與定義不一致
RangeError:數(shù)據(jù)越界
ReferenceError:非法或不能識別的引用數(shù)值
SyntaxError:發(fā)生語法解析錯誤
TypeError:操作數(shù)類型錯誤
URIError:URI處理函數(shù)使用不當(dāng)