2012-10-10 61 views
0

我做储蓄计算器和我在Javascript以下多条件,当我把它在Dreamweaver中我得到一个语法错误,但真的不明白的地方是错误。多条件语句中的javascript

下面是代码:

if (p<20000 && nnn=1) { 
    document.kombpred.r2.value = mmm * nnn * bbb * 0.1; 
} 
else if (p>=20000 && nnn = 1) { 
    document.kombpred.r2.value = 2000; 
} 
else if (p>=20000 && nnn > 1) { 
    document.kombpred.r2.value = mmm * Math.pow(nnn,2) * bbb * 0.1; 
} 
else if (p<20000) { 
    document.kombpred.r2.value = mmm * nnn * bbb * 0.1; 
} 

这仅仅是if声明,我甚至其他if报表,但不能与多个条件和代码是正确的,但我只要一插入此,发生不好的事情。

词:mmm; nnn; bbb;全部是parseFloat()号码,如:var mmm = parseFloat(m)

我也已经宣布所有的人。

+1

跳出来的东西是'nnn = 1' - 当你必须是比较时。不知道这是严格的语法错误。 –

+0

@本·帕森斯:赋值是一个有效的表达式,但是这里'p <20000 && nnn'被赋予一个*值*无效的值。 – pimvdb

+0

我现在在手机上注意到的唯一事情是,如果在if条件中设置'nnn',那么在比较值时应该使用'=='而不是'='。 但是这不应该给你的,虽然语法错误 - - - 也许这是一个语法错误,如果严格模式是,我不知道 – C5H8NNaO4

回答

4

错误说的是什么?我的控制台说:无效的左侧分配。当他们应该是nnn == 1时,您正在进行比较,如nnn=1(这是作业的语法)。

+0

Wooooow伟大:D ...我需要把nnn == 1,它解决了这个问题。所以在JavaScript中,当我分配s.m.th时,我只放一个等号,当我比较时,我应该使用两个等号:)。万分感谢!!!! – Genci

+3

第二段不正确。如果评估如此,它在语法上是正确的。由于优先级,它被评估为'(p> = 20000 && nnn)= 1',这是无效的(对表达式的赋值毫无意义 - 只能赋值给变量/属性)。 – pimvdb

+0

@pimvdb你是对的,谢谢你指出。删除。 – Radu