目录
一、定义变量
ES6 以前我们定义变量使用 var 关键字,ES6 新增了两个定义变量的关键字:
- let ==> 定义变量
- const ==> 定义常量(特殊的变量)
1. let / const 与 var 的区别
- var 会进行预解析,let 和 const 不会进行预解析
//1. 预解析
console.log(num) //undefined
var num = 100
console.log(num) //100
//定义之前使用 let 声明的变量会报错
console.log(num2) //报错
let num2 = 200
console.log(num2) //
//定义之前使用 const 声明的变量会报错
console.log(num3) //报错
var num3 = 300
console.log(num3) //100
- var 可以声明两个重名的变量,let 和 const 不能定义重名变量
//2.重复变量名
var n1 = 100
var n1 = 200
console.log(n1) //200
let n2 = 100 //报错
let n2 = 200
const n3 = 100 //报错
const n3 = 200
- var 没有块级作用域, let 和 const 有块级作用域
//3. 块级作用域
//任何一个可以执行代码段的{} 都会限制该变量的使用范围
if(true) {
var num = 100
console.log(num) //100
}
console.log(num) //100
if(true) {
let num = 100
console.log(num) //100
}
console.log(num) //报错
if(true) {
const num = 100
console.log(num) //100
}
console.log(num) //报错
2. let 和 const 的区别
- let 可以定义变量的时候 不 进行赋值,const 在定义时必须赋值。
//1. 定义时不赋值
let num
console.log(num) //undefined
num = 100
console.log(num) //100
const num //报错:const variable without initializer is not allowed
console.log(num)
num = 100
console.log(num)
- let 定义的变量可以被修改,const 定义的常量一经赋值不能被修改。
//5. 修改
let num = 100
console.log(num) //100
num = 200
console.log(num) //200
const num = 100
console.log(num) //100
num = 200 //报错:Attempt to assign to const or readonly variable
console.log(num)
二、箭头函数
箭头函数,就是在 ES6