命名
方法
匈牙利命名
驼峰命名
规则
首字符:英语字母或者下划线。
组成:英文、数字、下划线。
禁忌:不能使用javascript的关键字和保留字。
声明
变量类型
值类型
- 占用空间固定,保存在栈中
- 保存与复制的是值本身
- 使用typeof检测数据的类型
- 基本类型数据是值类型
引用类型
- 占用空间不固定,保存在堆中
- 保存与复制的是指向对象的一个指针
- 使用instanceof检测数据的类型
- 使用new()方法构造出的对象是引用型
作用域
全局变量
包含:
- 在函数体内外定义的变量
- 在函数体内部定义的无var的变量
调用: - 在任何位置
局部变量
包含:
- 在函数内部使用var声明的变量
- 函数的参数的变量
调用: - 当前函数体内部
优先级
- 局部变量高于同名全局变量
- 参数变量高于同名全局变量
- 局部变量高于同名参数变量
特性
- 忽略块级作用域
- 全局变量是全局对象的属性
- 全局变量是调用对象的属性
- 作用域链
- 内层函数可访问外层函数的局部变量
- 外层函数不能访问内层函数局部变量 - 生命周期
- 全局变量:除非被显示删除,否则一直存在;
- 局部变量:自声明起至函数运行完毕或被显示删除;
- 回收机制:标记清除、引用计数
未完待续!!!