gpt4 book ai didi

Javascript 内联 if 语句

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:01:05 24 4
gpt4 key购买 nike

我在 javascript 控制台中得到了一些奇怪的结果。我试图寻找三元运算符的替代(更具可读性)版本,只是为了好玩。打字:

{ if(3===4) {5} else {6} }

在我的控制台中评估为 6,但出于某种原因,我无法将其分配给变量,因此运行:

let a = { if(3===4) {5} else {6} }

不让我直接把它存到变量里。所以我的主要问题是,如果这个 block 正在返回一些东西,为什么我不能分配它?

最佳答案

您的代码无法访问 block (和其他语句)返回值这一事实。控制台可以看到结果,它存在于语言规范级别,但不存在于您的代码中。

你的选择是条件运算符¹(当你习惯它时它是非常可读的,但你说过你正在寻找它的替代品)或 if/ else 在两部分中分配给 a:

let a;
if (3 === 4) {
a = 5;
} else {
a = 6;
}

或者您可以使用内联函数 (IIFE):

let a = (() => { if (3 === 4} return 5 else return 6; })();

还有一个建议是“do expressions”,看起来像这样:

// Currently a proposal, not implemented in engines yet
let a = do { if (3 === 4) 5; else 6; };

该提案处于 the process 的第 1 阶段, 所以它可能会或可能不会进步,如果它进步了,它可能会在这样做之前发生显着变化。


¹ 尽管您经常看到“三元运算符”,但正确的名称是条件 运算符。它是一个三元运算符(一个接受三个操作数的运算符),并且是目前 JavaScript 唯一的三元运算符,但这可能有一天会改变。 :-)

关于Javascript 内联 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50330141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com