1.let
// 1.防止代码内层变量覆盖外层变量
if(true){
let a=10;
console.log(a);
}
// 2.防止循环变量变成全局变量
for (let i = 0;i <2;i++){
console.log(i);//会显示a未定义
}
// 3.不可以用一个变量重复赋值
// let a = 10;
// 4.let不存在变量提升 不可以在还没有初始化之前就访问
console.log(a);
let a=1;
2.const 关键字
// 1.const关键字 跟let第1点一样
// 2.const声明时必须赋值
// const PI; 没有赋值
// 3.const一旦赋值就不可以更改 对于复杂数据类型(数组、对象)可以更改内部的值
const ary=[100,200];
ary[0]='a';
ary[1]='b';
console.log(ary);
3.var
/*1.var可以重复定义同名的变量*/
var x=10;
var x=20;
alert(x);
/*2.var会导致变量的提前声明现象出现*/
var x;
alert(x);
var x=10;
/*3.var在条件或者循环语句中定义的变量在语句块后即右花括号可以访问*/
for(var i=1;i<10;i++){
document.write(i+" ");
}