相关疑难解决方法(0)

if/else语句中的函数声明?

如何处理函数声明?

var abc = '';
if(1 === 0){
    function a(){
        abc = 7;
    }
}else if('a' === 'a'){
    function a(){
        abc = 19;
    }
}else if('foo' === 'bar'){
    function a(){
        abc = 'foo';
    }
} 
a();
document.write(abc); //writes "foo" even though 'foo' !== 'bar'
Run Code Online (Sandbox Code Playgroud)

此示例在Chrome和Firefox中生成不同的输出.fooFF输出时输出Chrome 19.

javascript scope function

48
推荐指数
2
解决办法
4万
查看次数

可以在JavaScript中的语句内部显示函数声明吗?

请将官方ECMAScript规范视为您的答案来源,而不是特定浏览器供应商发布的文档.(我知道Mozilla使用"函数语句"扩展其JavaScript实现.)

那么,根据ECMAScript规范,ergo,其中定义的句法产品,这是有效的吗?

if (foo) {
    function x() { return; }
}
Run Code Online (Sandbox Code Playgroud)

更新:我的问题也可以这样说: Statement生产是否包含 FunctionDeclaration生产?

结论:答案是否定的.

javascript

17
推荐指数
1
解决办法
1534
查看次数

标签 统计

javascript ×2

function ×1

scope ×1