自我学习记录,欢迎指正
在ES6中,变量的声明可以用var,let,const
var
1、用var声明的变量如果在调用的后面,不会报错,将会显示undefined
console.log(a); //a的值为undefined
var a = 1;
2、函数内声明的变量只能在函数内使用,与之相对的在块级作用域内声明的变量则在块级作用域范围外也能使用
function test(){
var a = 1;
}
console.log(a); //a is not defined
{
var b = 1;
}
console.log(b); //1
如果没有用var声明,直接使用的,则是隐式声明
{
b = 1;
}
console.log(b); //1
let
与var声明的变量相比,即使是在块级作用域范围内声明的,在范围外也不能使用
{
let a = 1;
}
console.log(a); //a is not defined
同一变量名不能重复定义
let a = 1;
let a = 2;
//Identifier 'a' has already been declared
如果某个变量确定只在函数范围内或者说块级作用域范围内使用,尽量使用let来声明,这样的好处是不会产生数据污染
const
用const来声明常量,在声明的同时必须赋值,不然会报错
const a; //报错
用const声明的常量,不能再重新赋值,块级作用域范围内定义的,在范围外也不能使用
const a = 1;
const a = 2; //报错
{
const a = 1;
}
console.log(a); //a is not defined
网友评论