原生js——基礎
- 2020 年 3 月 11 日
- 筆記
※ Js幾個輸出語句:?
①alert()彈出對話框
②console.log()控制台輸出
③document.write()在瀏覽器輸出
※ 變數的數據類型?
①基本數據類型 :string number boolean
②複合數據類型 :object對象
③特殊數據類型 :undefind null
※ undefined和Null的區別?
Undefined是訪問一個未初始化的變數時返回的值,可以看做是空的變數。
Null是訪問一個尚未存在的對象的時候返回的值,可以看做是空的對象。
※ switch和if的使用場景?
① 當條件是具體的值時,建議使用switch
② 當條件是一個範圍時,建議使用if else
※ while和do...while的區別?
While : 先判斷條件再執行循環體。循環體有可能一次也不執行。
Do..while : 先執行循環體,再判斷條件,循環體至少執行一次。
※ break continue 和 return的區別?
Break : 結束本層循環,跳出循環體。
Continue : 終止本次循環,繼續開始下次的循環。
Return : 程式返回,不再執行以下的程式碼。
※ js解析器?
瀏覽器內部有個專門解析JS程式的地方,這個空間就是JS解析器,解讀JS程式有兩個步驟:
①預解析 :
找到一些東西,var function。
找到了var就是找到了一個變數,會提前為這個變數賦予一個值undefined。
找到了function就是找到了一個函數,會提前為這個函數名賦予一個值,這個值就是函數塊本身。
找到兩個function。如果函數重名,後一個會覆蓋前一個。
如果找到的變數和函數重名,保留函數。
②逐行解讀程式碼,如果遇到表達式,改變了變數的值,那麼預解析時倉庫的變數的值也會改變。
※ 作用域鏈?
變數首先在函數體內部向上查找,如果在函數體內部查找到,就返回(說 明該變數就是一個局部變數),否則繼續向函數體外部查找,如果找到就 是操作的全局變數。如果函數體內部和外部都沒有找到,判斷這個變數 是否有var,有的話就是局部變數,沒有的話就是全局變數。

