您的位置:首页 > 其它

ES6中块级作用域

2017-09-10 15:11 267 查看
function f() { console.log(‘I am outside!’); }

(function () {

if (false) {

// 重复声明一次函数f

function f() { console.log(‘I am inside!’); }

}

f();

}());

ES6标准中上面函数在chorme开发环境中的结果是:

Uncaught TypeError: f is not a function

很明显,ES6标准中的块级作用域里面声明的函数在作用域以外是不能调用的。

上面的代码中*if语句后面接的就是一个块级作用域,他的外面是匿名函数的函数作用域,在函数作用域(父级作用域)不能调用块级作用域(子作用域)里面的函数或者变量,两者不共通*。

如果要在匿名函数调用f();

函数形式应该是:

JavaScript

function f() { console.log('I am outside!'); }

(function () {

function f() { console.log('I am inside!'); }

f();

}());


输出结果是:I am inside!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息