变量(variable)
作用:用于存储数据、值的容器
使用:声明变量
var variables;
console.log(variables); // undefined
// 链式声明
let a, b = 1, c = 11, d;
variables = "赋值了字符串"
console.log(variables); // 赋值了字符串
console.log(variable)
var variable = 'hello' // hello
console.log(variable);
let variable = 'hello'; // Uncaught ReferenceError: Cannot access 'variable' before initialization at [错误位置] (在初始化之前不能访问变量)
console.log(variable);
const variable = 'hello'; // Uncaught ReferenceError: Cannot access 'variable' before initialization at [错误位置] (在初始化之前不能访问变量)
注意
- 1. 在js中声明一个已定义,但未赋值的参数时会返回undefined[js中的一种数据类型],如果未声明就使用则会返回报错 xxx is not defined。
- 2. 在js中对于一个变量的类型是根据等号右边参数决定的,其变量的类型也可被随意转换。
- 3. 在js中使用var声明变量可以放在使用后,使用时调用的变量会被编译器进行提升处理而不会报错.(let,const声明的则会提示报错)。
- 4. js中虽然可以不用关键去标明变量的声明,只要变量名右方有参数赋值,该变量则可以声明使用。但以防不自觉的产生全局变量,还是建议添加关键字声明
- 5. 如果重复声明同一个变量,第二次声明的变量为赋值则会与第一次赋值的变量的参数相同。
变量声明关键字:var 、 let 、 const
区别:
1. 作用域
var是函数作用域,let则是块级作用域,const也是块级作用域
注:函数作用域则是一个函数的包含内的代码,而块级作用域则是一对大括号包裹着的区域
2. 变量提升
let与const不允许使用变量提升的方式使用(先使用后定义报错:在初始化之前不能访问变量)
3. 变量重复声明
let与const不允许重复声明。使用可重复声明的var会导致有时使用了已经声明过的变量,如果该变量占有着其他功能运转的参数,一般被改变则会出现不可预估的错误。
4. const常量:常量也就是不可更改的字面量,其里面的参数是固定的,只读的。
const常量的声明时必须初始化参数,否则报错:Missing initializer in const declaration, 且const声明最好使用大写,以此标明该参数是常量。
标志符(identifier)声明使用规范
- 1. 不允许使用关键字命名(一般编译器中会有颜色标注)
- 2. 第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)。第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字0-9。例如:$test/_hello/_123/。。。
- 3. 中文也是合法的变量名。
- 4. 命名规范,链接参照
<命名规范>
- 5. 一个拥有好的规范编写的代码,会使得其有良好的可阅读,维护性,扩展性。
人生得一知己足矣,斯世当以同怀视之。 —— 鲁迅