今天所整理的是JavaScript语法es6相关知识
1.var和let const 对比
区别
1.新增了一个块级作用域
if(true){
var n=2
}
console.log(n) // 拿的是全局变量 n
if(true){
let n=2
}
console.log(n) // 会报 未定义 因为let 定义的n是块级作用域
区别2:var 定义变量 存在变量的默认提升功能 ,let 和const没有
console.log(x)
var x=2; //会输出undefined
console.log(a)
let a=2; // let会报错 let 是必须先定义,后赋值
区别3:var 定义可以重复定义 ,let和const不可以
var x = 2;
var x = 3;
console.log(x); // 会输出为3 随js代码从上往下执行,所以var声明的变量可以重复,会让后面的值覆盖之前的值
let a = 1;
let a = 2;
console.log(a); //会报错,因为let声明变量不能重复声明赋值
区别4:var 定义变量 自动挂载 window对象上 。let和const不会
var a = 2;
console.log(window.x); // 会输出2 因为var定义变量会自动挂载到最大对象window上
let a =2;
console.log(window.x)