本节知识点
- 变量的新的声明方式
- let
- const
概述变量声明的三种方式
- var 就是变量的意思 可以来回定义。后面会覆盖前面
- let 也是变量的意思
- const 常量。一次声明后就不能改变了
- 无论是let还是const只能声明一次不能多次否则会报错误
let a = 3;
let a = 4;
console.log(a);
这样就会直接报错误
var 变量的声明方式
- var
在ECMA5 里面他利用var 做了全局提升。也就是var 变成了全局变量。无论是匿名函数还是区块话他都可以调用
举例子
var a = "Hello";
function text(){
console.log(a);
}
text();
这样的结果也是能出来的。结果就是hello 可见var是全局声明的
- let 局部声明
举例子
var a =2;
function test(){
let a=3;
}
console.log(a); /* 结果就是2*/
在来一个例子
{
let a =3;
}
console.log(a); /*这样就直接报错误了。因为let出不来*/
let 只能在区块里声明,不在外部声明。我们打印a的时候就是报错。显示找不到变量
let 的作用非常好,他就是怕污染全局变量的。举个例子
for(var i=0;i<3;i++)
{
console.log("循环体中"+i);
}
console.log("循环体外"+i);
结果就是
循环体中0
循环体中1
循环体中2
循环体中3
这样你就会发现循环体外的变量贝污染了,如果在外部调用就会出现问题。但是我们用let就不用出现这个问题
for(let i=0;i<3;i++)
{
console.log("循环体中"+i);
}
console.log("循环体外"+i);
这个时候控制台就报错误了。找不到这个变量了。我们要努力去使用let来声明,这样不会污染全局变量
for(let i=0;i<3;i++)
{
function a (){
console.log(i);
}
a();
}
这样也能console.log出来。想想选项卡的传值,这样是不是简单多了。
- const 声明常量
在程序开发中,有些变量从声明还是就始终不会变化。所以就需要const来声明
const a = "测试一";
var a = "测试二";
console.log(a);
这样程序就会报错误,因为const常量不能改变