JS中什么情况下会if & else都不走

维护一个H5嵌入原生app的模块,今天碰到一个情况PC调试全都没问题,真机上出现了以下情况,有点无法理解

window.userInfo = {
    openInfo: function () {
                $('.container').prepend('<p>0</p>')//这个执行了
                if(typeof info.show === 'function'){//info.show是原生提供的方法
                    $('.container').prepend('<p>1</p>')//不执行
                }else{
                    $('.container').prepend('<p>2</p>')//不执行
                }
                $('.container').prepend('<p>3</p>')//不执行

                //下面都不执行
                ...

    },
}
阅读 2.9k
3 个回答

抛出异常了吧?比如 info 是 null/undefined 的时候。

加个 vConsole 或者 Eruda,看下控制台信息。

那这是报错了呀,猜一下info.show这里info可能为undefined

如果没有报错
那么就是不可能的事情 你在里面console.log或者debugger看效果, 到底进了没

如果真的都没进, 并没有报错信息, 那只可能是前面有错误, 并且错误被trycatch了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题