es6学习笔记之 let 和 const来源
1.let 命令
es6新增 let
命令, 和 var
的用法相似, 都是用来声明变量.但是 let 所声明的变量, 只在 let
命令所在的代码块内有效.
{
let a = 1;
var b = 2;
}
a // ReferenceError: a is not defined
b // 1
复制代码
不会存在变量提升的问题
变量提升, 即变量可以在声明之前使用.值为 undefined
. 为了纠正这种现象, let
命令改变了语法行为, 它所声明的变量一定要在声明后使用.
// var
console.log(num); // undefined
var num = 10;
// let
console.log(str); // ReferenceError
let str = 'aa';
复制代码
不允许重复声明
let a = 1;
console.log(a); // 1
let a = 2; // SyntaxError: Identifier 'a' has already been declared
复制代码
2.const 命令
const
声明一个只读的常量. 一旦被声明, 常量的值就不能改变
const PI = 3.1415926;
PI // 3.1415926
PI = 3; // TypeError: Assignment to constant variable.
复制代码
const
的作用域与 let
命令相同: 只在声明所在的块级作用域内有效.
if(true) {
const VAL = 3;
}
VAL // ReferenceError: VAL is not defined
复制代码
const
声明的变量也和 let
一样不可重复声明.
var a = 1;
let b = 2;
// 以下都会报错 SyntaxError: Identifier 'a'|'b' has already been declared
const a = 3;
const b = 4;
复制代码