1.使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象。
2.使用let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升。
3.使用const声明的是一个只读的常量,(不包括引用类型,向数组,对象等)在后面出现的代码中不能再修改该常量的值。(保护全局变量,以免受到污染),必须给一个初始化的值。
比如:
const a = 100;
const = 10; //报错
const arr = [1,2];
arr.push(3); //arr = [1,2,3];
4.let,const在同一个作用域下不能重复定义相同的变量名称:
比如:
var a = 10;
var a = 100; //后面的值覆盖前面的值
// 但是
let a = 10;
let a = 100;
// 或者
const a = 10;
const a = 100;
就会报错