**
1.用var定义一个变量,此时变量 不初始化(没有赋值) 时输出undefined,并且变量是 可以被修改(重新赋值)
**
/*var a; //不初始化(没有赋值)
alert(a);//输出undefined*/
var a = 1;
alert('此时是函数外面定义的a:' + a);//输出a=1
function one(){
a = 2;
alert('此时是函数外面定义的a 但是是在函数内被重新赋值:' + a); //输出a=2
}
one();
alert('函数调用后,此时是函数外面定义的a 但是是在函数内被重新赋值:' + a); //输出a=2
**
2.用const定义一个变量,此时变量 必须初始化(必须赋值) ,并且变量是 不可以被修改(不能重新赋值)
**
const b = 1;
// const b;//报错,必须初始化
alert( b);//输出b = 1;
b = 2;//报错,b不可以被修改
alert( b);//无法输出
**
3.用let定义一个变量,由于let是属于块级作用域,所以函数内部使用let定义后,对函数外部是没有影响。
**
let c = 1;
alert('函数外部let定义c:' + c);//输出c=1
function two(){
let c = 2;
alert('函数内部let定义c:' + c);//输出c=2
}
two();
alert('函数调用后函数外部用let定义的c不受函数内部用let定义的c的影响:' + c);//输出c=1
**
最后补充有点就是还有一种定义变量的方式,即 d = 1, 但是这种方式极其不规范,不推荐使用,只做了解。
**
d = 1;
alert(d); //此时输出d=1;但是不推荐使用