【问题标题】:Does ES6 support the Elvis operator? [duplicate]ES6 是否支持 Elvis 运算符? [复制]
【发布时间】:2019-03-21 17:46:00
【问题描述】:

Javascript / ES6 是否支持Elvis 运算符?

例子:

var x = (y==true) ?: 10;

示例 2:

var debug = true;
debug ?: console.log("Value of x:" + x);

【问题讨论】:

  • 不,没有 Elvis 运算符,但您可以使用 || - var x = y || 10 例如或 debug || console.log()
  • 除了@vlaz 说的,你还可以写一行 if 语句 if (y === true) 10; 请注意,由于缺乏可读性,这不是最流行的 if 语句编写方式。
  • ||猫王算子。
  • @SalmanA || 仅评估条件是否为假。 Elvis 运算符评估条件是否为真。所以&& 更接近猫王算子。
  • @1.21gigawatts no.请参阅 wiki 上的定义,其中说 如果该操作数被认为是 true,则返回其第一个操作数,否则评估并返回其第二个操作数。这就是 || 所做的:1 || 2 // 1 与 @987654333 @.

标签: javascript ecmascript-6 ecmascript-2016


【解决方案1】:

不,但你可以使用 ||或 &&,似乎执行相同的功能。

var debug = true;
debug && console.log("debug mode on ");
debug || console.log("debug mode off");

【讨论】:

  • 您也可以将其标记为选中 ?
【解决方案2】:

您的答案的简短回答是“否”。 javascript 中没有猫王运算符。但是您可以通过几种不同的简短方式实现相同的行为,如下所示:

使用普通的三元运算符:

var x = y ? 10 : null;

或者对单个输出使用简单的“if”:

if (debug) console.log("Value of x:", x);

【讨论】:

    猜你喜欢
    • 2011-08-27
    • 1970-01-01
    • 2022-06-29
    • 2019-10-22
    • 2016-01-18
    • 1970-01-01
    • 2012-04-25
    • 2012-02-11
    • 2011-07-25
    相关资源
    最近更新 更多