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 變量名

  • 出現問題:

    • 沒有類型
    • 重複聲明
    • 隱式聲明
    • 不聲明直接賦值
  • 正確作法:

    • 先聲明,後讀寫
    • 先賦值,後運算

 

變量類型

  • 值類型

    1. 佔用空間固定,保存在棧中
    2. 保存與複製的是值自己
    3. 使用 typeof 檢測數據的類型
  • 引用類型

    1. 佔用空間不固定,保存在堆中
    2. 保存與複製的是指向對象的一個指針
    3. 使用 instanceof 檢測數據的類型
    4. 使用 new() 方法構造出的對象是引用型 

 

做用域

  • 全局變量

    • 包含:
      • 在函數體外定義的變量
      • 在函數體內部定義的無 var 的變量
    • 調用:
      • 任何位置均可以
  • 局部變量

    • 包含:
      • 在函數內部使用 var 聲明的變量
      • 函數的參數變量
    • 調用:
      • 在當前函數的內部
  • 同名優先級

    • 局部變量 > 同名參數變量 > 同名全局變量 
  • 特性

    • 全局變量是全局對象的屬性
    • 局部變量是調用對象的屬性
    • 做用域鏈:
      • 內層函數能夠訪問外層函數的局部變量
      • 外層函數不能訪問內層函數的局部變量
    • 生命週期:
      • 全局變量 —— 除非被刪除,不然一直存在
      • 局部變量 —— 自聲明起 至 函數運行完畢/被刪除
      • 回收機制 —— 標記清除,引用計數
相關文章
相關標籤/搜索