HTML元素 空元素 不是所有元素都擁有開始標簽、內容和結束標簽。一些元素只有一個標簽,通常用來在此元素所在位置插入/嵌入一些東西。這些元素被稱為空元素例如:元素 `` 是用來在頁面插入一張指定的圖片。 布爾屬性 有時會看到沒有值的屬性,這也是完全可以接受的。這些屬性被稱為布爾屬性。布爾屬性只能有一 ...
加var 變數和不加var 變數的區別
- 加var的變數 都會提升,不管代碼執行與否, 不加var的變數預編譯階段不會提升
- 原型鏈 和作用域鏈
window.a //不會報錯 返回undefined 訪問對象不存在的屬性不會報錯 ,走原型鏈 訪問GO中不存在的屬性 a //直接訪問未定義的變數會報錯, 走作用域鏈 沒有找到
- 不管是否加var 只要是全局變數, 在非嚴格模式下都會掛載到GO上
- 沒有加var的只能做全局
- 項目中儘量避免var , 更不要不聲明
let
- 聲明的變數不能訪問
- let + {} 可以形成塊級作用域 只能在塊中使用
- 使用let聲明的變數 不會掛載到GO上
- let定義同一個變數只能定義一次 ,二次定義會報錯
function(a){ // 在函數內部的形參相當於函數定義的局部變數 let a = 1 //這裡會報錯 }
const
- 聲明的變數不能修改
- 聲明必須賦值, 不然報錯
- 聲明的變數不會提升
- const 和{}也可以形成塊作用域 ,也不會掛載到GO上
閉包 一個不能回收的棧記憶體
- 保護EC中的變數 外界不能範圍
- 保存 可以像使用全局變數一樣使用局部變數 延長變數的生命周期
練習題
//