javascript windows phone if语句中断程序

javascript windows phone if语句中断程序,javascript,windows-phone-7,nokia,Javascript,Windows Phone 7,Nokia,这一行: if(Debug===true){console.log('No jquery detected on host site, loading own jquery');} 正在破坏诺基亚windows手机中的脚本,如果我将该变量设置为false,则一切正常,但如果设置为true,脚本将停止。我也试着用一个警报代替那个console.log,但同样的停止行为 有人知道或怀疑这种行为的原因吗 编辑 对于所有的回复,事实是,如果我取出整个console.log行并将其放在if中(例如,我将

这一行:

if(Debug===true){console.log('No jquery detected on host site, loading own jquery');}
正在破坏诺基亚windows手机中的脚本,如果我将该变量设置为false,则一切正常,但如果设置为true,脚本将停止。我也试着用一个警报代替那个console.log,但同样的停止行为

有人知道或怀疑这种行为的原因吗

编辑

对于所有的回复,事实是,如果我取出整个console.log行并将其放在if中(例如,我将其留空或我放置了一个简单的var声明),那么相同的停止行为仍然存在,这使我怀疑它与if语句的关系比与console对象的关系更大

第二版


正如你所说的,console.log破坏了它,我有一个隐藏的,找到了它,现在可以工作了,所以与if无关,而是来自console对象的所有错误,tkyou all,这很奇怪。我不完全清楚为什么要使用if(Debug==true)而不是if(Debug)或if(Debug==true)。==布尔值不需要。您可能想尝试一下,看看它是否能解决您的问题。

不要依赖现有的
console.log
。如果要使用它,请先检查它是否已定义。

我相信旧版本的Internet Explorer在默认情况下不会定义
控制台。通过执行此操作,您可以检查是否定义了
控制台

if(Debug===true){
    if(!!console){
        console.log('No jquery detected on host site, loading own jquery');
    } else {
        window.console = { log: function(m){ alert(m); } } //Define console to prevent future errors.
        alert('No jquery detected on host site, loading own jquery');
    }
}

WP7不支持控制台日志和警报。您确定这是诺基亚专用的,而不仅仅是WP7专用的吗?我没有尝试过,但这可能会很有用。

我不会依赖windows phone上的
控制台
对象。你应该防弹你的声明,以确保它不会爆炸:

if (Debug===true && typeof console !== 'undefined') {
    console.log('No jquery detected on host site, loading own jquery');
}

tks,我已经尝试过只使用if(Debug){},但是只要
Debug
是任何“truthy”值,同样的问题
if(Debug)
就会通过
if(Debug==true)
仅当
Debug
实际上是
true
时才会通过。这是两种完全不同的情况。只有当你使用的是糟糕的设计时,这才真正重要。如果软件设计正确,您应该知道通过该逻辑门的所有可能值。因此,无需说明(debug==true)。只是可读性较差。If(Debug)工作正常,除非您计划对各种不同的值类型(不仅仅是布尔值或空值)使用Debug,这是一种糟糕的编程实践。如果Debug为空,则为false。如果debug为false,则为false。如果debug为true,则为true。我没有看到任何其他情况涉及明显的布尔变量@圣地亚哥贝拉,回答你最初的问题,这是唯一导致失败的布尔逻辑门吗?其他类似的书面陈述也在做同样的事情吗?是否曾经有过调试未初始化的情况?windows phone JS引擎处理不同的问题。我不确定是诺基亚特有的,也许你是对的,但我只有这个设备可以测试。在这种情况下,它将是任何WP7设备:)