341420
今天在看 你不懂JS 的时候,出现了一个疑问:
- 块中的函数作用域到底在哪里?
-
书中说块中的函数作用域仅属于块中
{ foo(); // 好用! function foo() { // .. } } foo(); // ReferenceError -
我马上试了一下,发现并不是如此
{ foo(2, 3); function foo(a, b) { console.log(a, b); } } foo(1, 2); // 2 3 // 1 2
-
今天在看 你不懂JS 的时候,出现了一个疑问:
书中说块中的函数作用域仅属于块中
{
foo(); // 好用!
function foo() {
// ..
}
}
foo(); // ReferenceError
我马上试了一下,发现并不是如此
{
foo(2, 3);
function foo(a, b) {
console.log(a, b);
}
}
foo(1, 2);
// 2 3
// 1 2
用严格模式再试一次?
@lastIndexOf 对的,这样解释非常nice。
我的理解是js是没有块级作用域的,es6的块级作用域只是针对let 和const声明的变量或函数