声明变量
var num
let num
const num
区别
let 和 var
1.let没有变量提升(预解析) let声明量必须先定义再使用
console.log(num)
var num = 100
2. **let声明的变量,不能重复声明变量**
var num = 100
var num = 200
3. let具块作用域
全局作用域
局部作用域
块作用域 let
let声明的变量无法重复声明,且必须先声明再使用
function test1() {
let num = 100
console.log(num)
}
function test2(){
let num = 100
let num1 = 200 // Identifier 'num' has already been declared
}
什么是块作用域
局部作用域,在函数体里面的作用域
在大括号里面的作用域,且只在大括号里面生效,在大括号外面无法调用
function test3(){
if(true){
let a = 100 // 块作用域
}
for(var i = 0; i < 10; i++){
let b = 200 //块作用域
// console.log('b ',b);
}
// console.log('b ',b); // b is not defined
}
const 和 let
const声明的变量称为常量,只能赋值一次
const num = 100
num = 200 x报错
案例
function test4(){
const num = 100
// num = 200 //Assignment to constant variable.
console.log(num);
}
test4()
应用场景
1.考虑兼容问题
使用var
2. 变量可以多次改变值
let
3. 变量只赋值一次后,不再改变
const
const button = document.quererySelctor('button')