学习es6小记

207 阅读1分钟

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;