Dea*_*ool -4 javascript conditional
在下面的例子中,我在typeof函数中添加了一个数字,但结果是1undefined.为什么?
var y = 1;
if (function f(){}) {
y += typeof f;
}
console.log(y);Run Code Online (Sandbox Code Playgroud)
预期结果:
1function
Run Code Online (Sandbox Code Playgroud)
实际结果:
1undefined
Run Code Online (Sandbox Code Playgroud)
有人能帮我理解结果是怎么回事1function吗?我知道如果块没有自己的范围,那么无法理解为什么在圆括号中,该功能在圆括号外是不可见的.
那里的函数被评估为一个函数表达式,因为它在一个if语句中.因此,它不会被提升,也不会在其自身功能体之外的任何地方可见.if语句的内部期望一个值,因此它被视为表达式.
只有函数声明才会被提升并在其块中的任何位置可见.
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |