JavaScript 基本組成
- JavaScript由幾部分構成?
BOM、DOM、ECMAScript
數據類型
- 數據類型有哪些?
js數據類型分為兩大類,6種。
-
簡單數據類型:
- string
- boolean
- number
- null
- undefined
-
復雜數據類型:
- object
- 內置對象有哪些?
Array、Date、Math、Window、document、String、Number、Boolean
- 如何判斷數據類型?
- typeof
- typeof有一種數據類型是無法判斷出來的 : null,因為typeof null == 'obejct'
- 因為typeof null結果為'object',所以造成typeof判斷對象類型存在不準確性
- typeof運算后的返回結果,類型為字符串
- typeof返回結果固定為如下幾個值:'string'、'number'、'boolean'、'object'、'undefined'、'function'
基本類型與引用類型的賦值問題
- 基本類型
簡單數據類型賦值時賦的是具體的值。
- 引用類型
復雜數據類型賦值時賦的是地址。
運算符
- 算術運算符 + %
+ 作用:
% 取余數
- 邏輯運算符 && || !
-
&&
- 有一個false就是false,兩個true才是true
- 從左向右依次運算,運算時會把值轉換為布爾類型,遇到false,
則返回參與運算的具體值(注意不是true或false),如果沒有遇到false,返回最后一個參與運算的值。
-
||
- 從左向右依次運算,運算時會把值轉換為布爾類型,遇到true,
則返回參與運算的具體值(注意不是true或false),如果沒有遇到true,返回最后一個參與運算的值。
- 從左向右依次運算,運算時會把值轉換為布爾類型,遇到true,
-
!
- 取反,返回值相反的布爾值
- !!可以得到一個數據的布爾值
- 相等運算符 == === != !==
-
==
- 先自動進行數據類型的隱式轉換,轉換為相同的數據類型再進行比較。
-
===
- 比較數據類型與具體的值。
- 三元運算符 ? :
先計算?號前面的表達式結果,結果為true返回:號前面的表達式運算結果,否則后面的。
布爾類型轉換
-
如何把數據轉換為布爾類型?
- !!
- Boolean
-
哪些數據在轉換為布爾類型時結果為false?
- 0
- null
- undefined
- ''
- NaN
- false
語句
- 分支語句
if else、switch case
- 循環語句
for、while、do while、for in
- break和continue的作用是什么?
+break:- 終止循環
+continue:
- 跳出當前循環,繼續下一次
函數
- 創建方式
- 構造函數
- 字面量
- 表達式
- 聲明式
- 什么是形參和實參?
- 形參是定義函數時,在括號里面書寫的占位符,它的作用是為了接收將來函數調用時傳遞過來的實參
- 實參是函數調用時,實際傳遞給形參的值;如果傳遞基本數據類型,那么實參是具體的值;如果傳遞引用數據類型,那么實參是引用的地址。
- 函數調用時候傳參,就是一個賦值過程。
-
返回值
- 可以使用return關鍵字添加返回值
- 如果沒有return默認返回undefined
-
arguments
- 這是一個函數運行時內部提供的對象,這個對象的使用方式和數組類似,所以稱之為偽數組。
它可以通過下標訪問函數調用時傳遞進行的實參,通過length屬性得到實參的個數。
- 這是一個函數運行時內部提供的對象,這個對象的使用方式和數組類似,所以稱之為偽數組。
錯誤拋出
錯誤捕獲
debugger與斷點
+號
- 如果兩邊含有字符串或者對象,那么轉換為string之后再相加
- 除此之外,兩數相加,轉換為number之后再相加
-號
- 把兩邊數據轉換為number之后再相減
類型相等比較
約定:非空數據類型表示null和undefined兩種數據類型。
- 任何數據和NaN相比結果都為false
- null等于undefined
- null和非空類型相比結果為false
- undefined和非空類型相比結果為false
- 數字和非空類型比較,先轉換為數字再比較
- 布爾和非空類型比較,先轉換為數字再比較
- 對象與對象比較內存地址
- 對象與字符串,對象先轉換為字符串再比較
類型 | 類型 | 規律 |
---|---|---|
NaN | 任意類型 | false |
null | undefined | true |
null | 非空類型 | false |
undefined | 非空類型 | false |
數字 | 非空類型 | 轉換為數字再比較 |
布爾 | 非空類型 | 轉換為數字再比較 |
對象 | 對象 | 內存地址比較 |
對象 | 字符串 | 轉換為字符串再比較 |
數據做布爾類型轉換
- 0、NaN、''、""、null、undefined轉換結果為false
- 其余轉換結果都為true