-
ECMAScript 是当前 JavaScript 语言规范的最新标准,一般称为 es6, 但是因为 该标准规范是在 2015年6月份发布的,所以也叫作 ECMAScript 2015
-
let 变量声明
ES2015 中新增了一种变量声明的方式: let
,类似于 var
, 通过 let
声明的变量只在 let
命令所在代码块内有效。
块级作用域,块级其实就花括号之间的代码自动形成一个单独的作用域
为什么要有块级作用域?
- 内层变量可能会覆盖外层变量
- 用来计数的循环变量泄露为全局变量
使用 let
注意事项: 不存在变量提升,变量一定要先声明,后使用,否则报错。 在相同作用域内,不允许重复声明同名变量,否则会报错 。块级作用域 , 外层代码块不受内层代码块的影响 。 外层作用域无法读取内层作用域的变量 。内层作用域可以定义外层作用域的同名变量。
使用场景: 一般在块内部使用 let 变量进行声明。
-
const 变量声明
const也是用来声明变量,但是声明的是常量。一旦声明,常量的值
不可改变。常量的值不可改变,否则报错。const
也是块级作用域,只在声明所在的块级作用域内有效,不建议在 块内使用 const 不存在变量提升 ,不可重复声明。
const使用场景:
所有不希望用户去改变的变量就通过 const
声明为常量 javascript const fs = require('fs'); const os = require('os');
通过 const
声明的常量不可改变的是常量的地址,如果该常量是一个对象,依然是可以被修改的
javascript 'use strict'; const obj = { foo: 'bar' }; console.log(obj.foo); // => bar obj.foo = 'baz'; console.log(obj.foo); // => baz