From 83778d608b9cff8c74e92966babb2d6ab92e4a2d Mon Sep 17 00:00:00 2001 From: Ruan Yifeng Date: Thu, 27 Nov 2014 14:13:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9let?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/let.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/let.md b/docs/let.md index 237a3df..7e68627 100644 --- a/docs/let.md +++ b/docs/let.md @@ -145,7 +145,9 @@ function f() { console.log('I am outside!'); } ``` -上面代码在ES5中运行,会得到“I am inside!”,但是在ES6中运行,会得到“I am outside!”。 +上面代码在ES5中运行,会得到“I am inside!”,但是在ES6中运行,会得到“I am outside!”。这是因为ES5存在函数提升,不管会不会进入if代码块,函数声明都会提升到当前作用域的顶部,得到执行;而ES6支持块级作用域,不管会不会进入if代码块,其内部声明的函数皆不会影响到作用域的外部。 + +需要注意的是,如果在严格模式下,函数只能在顶层作用域和函数内声明,其他情况(比如if代码块、循环代码块)的声明都会报错。 ## const命令