原生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,有的話就是局部變數,沒有的話就是全局變數。

Tags: