js中有三种声明变量的方式:var、let、const,其中,let、const 是 ES6 中新加的。
首先说明:自从ES6增加了 let 和 const 之后,基本上就不再使用var了。let 和 const 声明的变量有明确的作用域、声明位置、不变的值,使得变量的声明有了更好的约束,有助于提高代码的质量。
一、 var
1. var关键字声明变量
定义方式: var 变量名;
(1) var message; // 没有初始化变量,message的值为undefined
(2) var message = 10; // 初始化变量,message的值为10
(3) var message = 'hi', found = false, age = 29; // 定义多个变量,在一条语句中用逗号分隔每个变量,每个变量可以初始化,也可以不初始化。
2. var声明变量的作用域
var声明变量的作用域是函数作用域。即若在函数内部声明变量,在调用这个函数的时候创建该变量,调用结束之后销毁该变量。
3. 其他
注意1:var声明的变量有“提升”作用,即不管在函数的哪个位置声明的变量,都会把所有变量的声明拉到函数作用域的顶部。如:
function foo() {
console.log(age);
var age = 26;
}
foo(); // 输出:undefined
该段代码等价于:
function foo() {
var age;
console.log(age);
age = 26;
}
foo()