var a;
console.log('1 a: ' + a);
if (true) {
a = 1;
function a() { };
a = 5;
console.log('2 a: ' + a);
}
console.log('3 a: ' + a);Run Code Online (Sandbox Code Playgroud)
输出是:
1 a: undefined
2 a: 5
3 a: 1
Run Code Online (Sandbox Code Playgroud)
我无法理解最后的输出“3 a: 1”。为什么不是“3 a:5”?
如何定义foo以使以下代码按预期正确工作(在 JavaScript 中)?
foo[1] + 1 // 2
foo[1][2] + 1 // 4
foo[10][20][30] + 1 // 61
foo[100][200][300] + 1 // 601
Run Code Online (Sandbox Code Playgroud)
这是我曾经遇到过的一个面试题。