关于var关键字需要知道的
- 对于var关键字,要么定义全局变量、要么定义函数内变量;
- 不能定义只在一个语句块儿内部起作用的变量;
- 这叫做js的函数级作用域(function-level scope);
1 | (function test(){ |
1 | function foo() { |
在严格模式下不能定义一个不被var修饰的变量
1 | (function test(){ |
用let关键字定义块儿级作用域变量
- 下面程序的lemma变量作用域为if语句块儿中;
1 | "use strict" |
javascript变量提升(hoisting)
- 变量提升是指,你可以引用稍后声明的变量,而不会引发异常;
- JavaScript变量感觉上是被“举起”或提升到了所有函数和语句之前;
- 提升后的变量将返回 undefined 值;
- 即使在使用或引用后面存在声明和初始化操作,仍将返回 undefined值;
1 | console.log(x === undefined); // logs "true" |
1 | var myvar = "my value"; |
定义常量
- 可以用关键字 const 创建一个只读的常量;
- 常量标识符的命名规则和变量的相同:必须以字母、下划线或美元符号开头并可以包含有字母、数字或下划线;
- 常量不可以通过赋值改变其值,也不可以在脚本运行时重新声明;
- 常量,包括全局常量,都必须带const关键字;
- 若const关键字被省略了,该标识符将被视为变量;
1 | const prefix = '212'; |