1.变量的命名
方法的命名(驼峰命名法)
全部小写 : 单词与单词之间全部下划线 (my_namespace)
大小写混合 : 第一个单词首字母小写其他单词首字母大写。
规则
首字符 英文字母或下划线
组成 英文字母 数字 下划线
禁忌 JavaScript 关键字 保留字
2. 变量的声明
显示声明 : var 关键字
陋习 : 没有类型 重复声明 隐式声明 不声明直接赋值
正解 : 先声明 后读写 先赋值 后运算
3. 变量类型
值类型
A) 占用空间固定 保存在栈中
B) 保存与赋值的是值本身
C) 使用typeof检测数据的类型
D) 基本类型数据是值类型
引用类型
A) 占用空间不固定 保存在堆中
B) 保存与复制的是指向对象的一个指针
C) 使用instanceof 检测数据的类型
D) 使用new() 方法构造出的对象是引用类型
4. 变量作用域
全局变量 包含在函数体外定义的变量 在函数体内部定义无var 不建议使用(任何位置可以调用)
局部变量 包含 在函数体内部使用var 声明的变量 函数的参数变量(当前函数体内部)
作用域链 : 内层函数可访问外层函数局部变量
外层函数不能访问内层函数局部变量
生命周期 : 全局变量 除非被显示删除 否则一直存在
局部变量 自声明起至函数运行完毕或被显示删除
回收机制 标记清除 引用计数