JavaScript 随笔之变量

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 声明的变量
      • 函数的参数变量
    • 调用:
      • 在当前函数的内部
  • 同名优先级

    • 局部变量 > 同名参数变量 > 同名全局变量 
  • 特性

    • 全局变量是全局对象的属性
    • 局部变量是调用对象的属性
    • 作用域链:
      • 内层函数可以访问外层函数的局部变量
      • 外层函数不能访问内层函数的局部变量
    • 生命周期:
      • 全局变量 —— 除非被删除,否则一直存在
      • 局部变量 —— 自声明起 至 函数运行完毕/被删除
      • 回收机制 —— 标记清除,引用计数
原文地址:https://www.cnblogs.com/Dance-yang/p/3615437.html