语法
let
- es6中新增的用于声明变量的关键字。
- let声明的变量只在所处的块级有效。
if(true){
let a=10;
console.log(a);
}
console.log(a);
if(true){
let a=10;
console.log(a);
if(true){
let c=20;
}
console.log(c);
}
console.log(a);
for(var i=0;i<3;i++){
console.log(i);
}
console.log(i);
console.log(a);
let a=10;
var num=0;
if(true){
console.log(num);
let num;
}
let arr=[];
for(let i=0;i<2;i++){
arr[i]=function(){
console.log(i);
}
}
arr[0]();
arr[1]();
const
- 作用:声明常量,常量就是值不能变化的量。
- 具有块级作用域。
if(true){
const a=10;
console.log(a);
}
console.log(a);
var num=10;
if(true){
var num=20;
console.log(num);
}
console.log(num);
const num=10;
if(true){
const num=20;
console.log(num);
}
console.log(num);
const PI;
- 常量赋值后,值不能修改(引用类型的内部值是可以修改的)
let、const、var的区别
| var | let | const |
|---|
| 函数级作用域 | 块级作用域 | 块级作用域 |
| 变量提升 | 不存在变量提升 | 不存在变量提升 |
| 值可更改 | 值可更改 | 值不可更改 |