【发布时间】:2020-01-18 03:08:51
【问题描述】:
当我将 if 语句中的 push 方法之间的 '&&' 替换为 ';' 时,输出会有所不同。请帮助我,以便我可以理解使用分号时的奇怪输出。
var tipcalculator = {
bills: [124, 48, 268, 180, 42],
tipmethod: function() {
this.arraytip1 = [];
this.arraytipbills = [];
for (var i = this.bills.length - 1; i >= 0; i--) {
billsarr = this.bills[i];
if (billsarr > 200)
this.arraytip1.push((billsarr * 10 / 100)) && this.arraytipbills.push(((billsarr * (10 / 100)) + billsarr));
if (billsarr >= 50 && billsarr <= 200)
this.arraytip1.push((billsarr * 15 / 100)) && this.arraytipbills.push(((billsarr * 15 / 100) + billsarr));
if (billsarr < 50)
this.arraytip1.push((billsarr * 20 / 100)) && this.arraytipbills.push(((billsarr * (20 / 100)) + billsarr));
}
}
}
tipcalculator.tipmethod()
console.log(tipcalculator.arraytip1)
console.log(tipcalculator.arraytipbills)
【问题讨论】:
-
当你想在 if 下包含多个语句时,使用
{}块来包装语句,否则只有第一个语句将绑定到条件,其余的将执行而不考虑条件 -
谁编写了这段代码,他们想惩罚谁?
-
您是否尝试过创建开销较小的测试用例来更好地理解您的问题?
-
@Biffen 我是 Javascript 的初学者,我写了它
-
使用
;你有两个单独的语句,它们都将被执行。对于&&,是否执行第二个表达式取决于第一个表达式是否产生真值。
标签: javascript html css node.js json