JavaScript 變量用於保存值或者表達式
變量命名
-
方法:
- 匈牙利命名法: 變量名=類型+對象描述
- Int 整型 —— i
- Float 浮點 —— fl
- Boolean 布爾 —— b
- String 字符串 —— s
- Array 數組 —— a
- Object 對象 —— o
- Function 函數 —— fn
- Regular Expression 正則 —— re
- 駝峯命名法:
- 全小寫 —— hello_world、little_boy、big_house_man
- 大小寫混合:
- 大駝峯 —— HelloWorld、LittleBoy、BigHouseMan
- 小駝峯 —— helloWord、littleBoy、bigHouseMan
-
- 類 ——> 大駝峯命名
- 變量名、函數名、對象名 ——> 小駝峯命名
-
規則:
- 首字符 —— 英文字母 || 下劃線
- 組成 —— 英文字母、數字、下劃線
- 禁忌 —— JavaScript 關鍵詞和保留字
- 注意 —— JavaScript變量對大小寫敏感
變量聲明
-
顯示聲明 —— var 變量名
-
出現問題:
-
正確作法:
變量類型
-
- 佔用空間固定,保存在棧中
- 保存與複製的是值自己
- 使用 typeof 檢測數據的類型
-
- 佔用空間不固定,保存在堆中
- 保存與複製的是指向對象的一個指針
- 使用 instanceof 檢測數據的類型
- 使用 new() 方法構造出的對象是引用型
做用域
-
全局變量
- 包含:
- 在函數體外定義的變量
- 在函數體內部定義的無 var 的變量
- 調用:
-
局部變量
- 包含:
- 在函數內部使用 var 聲明的變量
- 函數的參數變量
- 調用:
-
同名優先級
-
特性
- 全局變量是全局對象的屬性
- 局部變量是調用對象的屬性
- 做用域鏈:
- 內層函數能夠訪問外層函數的局部變量
- 外層函數不能訪問內層函數的局部變量
- 生命週期:
- 全局變量 —— 除非被刪除,不然一直存在
- 局部變量 —— 自聲明起 至 函數運行完畢/被刪除
- 回收機制 —— 標記清除,引用計數
歡迎關注本站公眾號,獲取更多信息