JavaScript 基本組成
- JavaScript由幾部分構(gòu)成曲初?
BOM体谒、DOM、ECMAScript
數(shù)據(jù)類型
- 數(shù)據(jù)類型有哪些臼婆?
js數(shù)據(jù)類型分為兩大類抒痒,6種。
-
簡單數(shù)據(jù)類型:
- string
- boolean
- number
- null
- undefined
-
復(fù)雜數(shù)據(jù)類型:
- object
- 內(nèi)置對象有哪些颁褂?
Array故响、Date纷捞、Math、Window被去、document主儡、String、Number惨缆、Boolean
- 如何判斷數(shù)據(jù)類型糜值?
- typeof
- typeof有一種數(shù)據(jù)類型是無法判斷出來的 : null,因為typeof null == 'obejct'
- 因為typeof null結(jié)果為'object'坯墨,所以造成typeof判斷對象類型存在不準(zhǔn)確性
- typeof運算后的返回結(jié)果寂汇,類型為字符串
- typeof返回結(jié)果固定為如下幾個值:'string'、'number'捣染、'boolean'骄瓣、'object'、'undefined'耍攘、'function'
基本類型與引用類型的賦值問題
- 基本類型
簡單數(shù)據(jù)類型賦值時賦的是具體的值榕栏。
- 引用類型
復(fù)雜數(shù)據(jù)類型賦值時賦的是地址。
運算符
- 算術(shù)運算符 + %
+ 作用:
% 取余數(shù)
- 邏輯運算符 && || !
-
&&
- 有一個false就是false蕾各,兩個true才是true
- 從左向右依次運算扒磁,運算時會把值轉(zhuǎn)換為布爾類型,遇到false式曲,
則返回參與運算的具體值(注意不是true或false)妨托,如果沒有遇到false,返回最后一個參與運算的值吝羞。
-
||
- 從左向右依次運算兰伤,運算時會把值轉(zhuǎn)換為布爾類型,遇到true钧排,
則返回參與運算的具體值(注意不是true或false)敦腔,如果沒有遇到true,返回最后一個參與運算的值卖氨。
- 從左向右依次運算兰伤,運算時會把值轉(zhuǎn)換為布爾類型,遇到true钧排,
-
!
- 取反会烙,返回值相反的布爾值
- !!可以得到一個數(shù)據(jù)的布爾值
- 相等運算符 == === != !==
-
==
- 先自動進(jìn)行數(shù)據(jù)類型的隱式轉(zhuǎn)換,轉(zhuǎn)換為相同的數(shù)據(jù)類型再進(jìn)行比較筒捺。
-
===
- 比較數(shù)據(jù)類型與具體的值柏腻。
- 三元運算符 ? :
先計算?號前面的表達(dá)式結(jié)果,結(jié)果為true返回:號前面的表達(dá)式運算結(jié)果系吭,否則后面的五嫂。
布爾類型轉(zhuǎn)換
-
如何把數(shù)據(jù)轉(zhuǎn)換為布爾類型?
- !!
- Boolean
-
哪些數(shù)據(jù)在轉(zhuǎn)換為布爾類型時結(jié)果為false?
- 0
- null
- undefined
- ''
- NaN
- false
語句
- 分支語句
if else沃缘、switch case
- 循環(huán)語句
for躯枢、while、do while槐臀、for in
- break和continue的作用是什么锄蹂?
+break:- 終止循環(huán)
+continue:
- 跳出當(dāng)前循環(huán),繼續(xù)下一次
函數(shù)
- 創(chuàng)建方式
- 構(gòu)造函數(shù)
- 字面量
- 表達(dá)式
- 聲明式
- 什么是形參和實參水慨?
- 形參是定義函數(shù)時得糜,在括號里面書寫的占位符,它的作用是為了接收將來函數(shù)調(diào)用時傳遞過來的實參
- 實參是函數(shù)調(diào)用時晰洒,實際傳遞給形參的值朝抖;如果傳遞基本數(shù)據(jù)類型,那么實參是具體的值谍珊;如果傳遞引用數(shù)據(jù)類型治宣,那么實參是引用的地址。
- 函數(shù)調(diào)用時候傳參砌滞,就是一個賦值過程侮邀。
-
返回值
- 可以使用return關(guān)鍵字添加返回值
- 如果沒有return默認(rèn)返回undefined
-
arguments
- 這是一個函數(shù)運行時內(nèi)部提供的對象,這個對象的使用方式和數(shù)組類似布持,所以稱之為偽數(shù)組豌拙。
它可以通過下標(biāo)訪問函數(shù)調(diào)用時傳遞進(jìn)行的實參,通過length屬性得到實參的個數(shù)题暖。
- 這是一個函數(shù)運行時內(nèi)部提供的對象,這個對象的使用方式和數(shù)組類似布持,所以稱之為偽數(shù)組豌拙。
錯誤拋出
錯誤捕獲
debugger與斷點
+號
- 如果兩邊含有字符串或者對象,那么轉(zhuǎn)換為string之后再相加
- 除此之外捉超,兩數(shù)相加胧卤,轉(zhuǎn)換為number之后再相加
-號
- 把兩邊數(shù)據(jù)轉(zhuǎn)換為number之后再相減
類型相等比較
約定:非空數(shù)據(jù)類型表示null和undefined兩種數(shù)據(jù)類型。
- 任何數(shù)據(jù)和NaN相比結(jié)果都為false
- null等于undefined
- null和非空類型相比結(jié)果為false
- undefined和非空類型相比結(jié)果為false
- 數(shù)字和非空類型比較拼岳,先轉(zhuǎn)換為數(shù)字再比較
- 布爾和非空類型比較枝誊,先轉(zhuǎn)換為數(shù)字再比較
- 對象與對象比較內(nèi)存地址
- 對象與字符串,對象先轉(zhuǎn)換為字符串再比較
類型 | 類型 | 規(guī)律 |
---|---|---|
NaN | 任意類型 | false |
null | undefined | true |
null | 非空類型 | false |
undefined | 非空類型 | false |
數(shù)字 | 非空類型 | 轉(zhuǎn)換為數(shù)字再比較 |
布爾 | 非空類型 | 轉(zhuǎn)換為數(shù)字再比較 |
對象 | 對象 | 內(nèi)存地址比較 |
對象 | 字符串 | 轉(zhuǎn)換為字符串再比較 |
數(shù)據(jù)做布爾類型轉(zhuǎn)換
- 0惜纸、NaN叶撒、''、""耐版、null祠够、undefined轉(zhuǎn)換結(jié)果為false
- 其余轉(zhuǎn)換結(jié)果都為true