语法糖JavaScript(If语句)错误

时间:2019-01-26 20:12:43

标签: javascript ecmascript-6 syntactic-sugar

大多数时候,我们使用If else语句并编写等效的语法糖很容易。

condition?trueExecute:falseExecute

它的句法糖是

const NUMBER = 5346789123;
let anotherNew = NUMBER.toString();
let stringNumber = "";
let newString = anotherNew.length;

for(let numCount = 0; numCount < newString; numCount++){

if (anotherNew[numCount] == 4){

    console.log('we have removed 4');
    continue;
}
if (anotherNew[numCount] == 9){

    console.log('we have a break');
    break;
}
stringNumber += anotherNew[numCount];
console.log(stringNumber);  
}

但是我在下面的代码中遇到问题,因为我不想使用else 。最重要的是,我想循环使用break或continue 功能。当我使用普通的If语句时;该代码是完美的。但是无论何时我尝试使用语法糖代替if,它都无法执行。

有没有可能的解决方案,因为我发现的所有示例都没有解决这个问题

我的代码:

anotherNew[numCount] == 4? console.log('we have removed 4') continue;

anotherNew[numCount] == 9? console.log('we have a break') break;

语法糖,我试图用来替换if语句,但是会导致错误

Response.StatusCode = (Int32)HttpStatusCode.BadRequest;
return Content("Zażółć gęsią jaźń. And, the quick brown fox jumps over the lazy dog. ");

2 个答案:

答案 0 :(得分:2)

  

我尝试使用语法糖

The conditional operator不是语法糖。它是具有特定用途的特定运算符,您只是在错误地使用它。它用于有条件地生成一个值作为整体表达式,如果条件为真,则为一个值,如果条件为假,则为另一个。

例如:

let x = input == 'one' ? 1 : 0;

该表达式根据条件产生一个整数值。

如果条件为真,您要执行的就是简单地执行一段代码。并且您已经有了用于该工具的if语句:

if (anotherNew[numCount] == 4){
    console.log('we have removed 4');
    continue;
}

这里的总体教训是不要尝试让代码变得太聪明。您使用if语句是为了达到其正确和正确的目的。该代码简单,明确,即使不经意间也易于理解。这些都是好东西。不要用简洁,复杂的代码来代替它们,它们以不直观的方式使用工具,只是节省了一些击键。

答案 1 :(得分:0)

anotherNew[numCount] == 4? console.log('we have removed 4') continue;

anotherNew[numCount] == 9? console.log('we have a break') break;

这不仅仅是语法糖。它是三元运算符或条件语句。它不能总是替换代码中的if else块。

三元运算符执行语句,并根据语句或它们的结果为truefalse给出输出,而在if / else块中,我们可以给出所需的任何条件。这是个很大的差异。您不能盲目地使用一个代替另一个。使用它们时,您必须牢记某些规则。