gpt4 book ai didi

JavaScript 三元运算符变成完整的 if/else 语句问题

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

我有以下三元语句:

$.history.init(function(url) {
load(url == "" ? "#some-page" : url);
});

我改写成:

$.history.init(function(url) {
load(
if( url == ""){ url = "#some-page"
} else { url = url }
);
});

我现在第 3 行 if(url == "") 出现错误,但我不明白是什么错误。
非常感谢任何建议。

最佳答案

在 JavaScript 中,一个 if 不是表达式。它不返回值,也不能放在函数调用中。也就是说,这是无效的:

func(if (a) { ... } else { ... });

这是 if 之间的主要区别和 ?: --运算符是一个表达式并返回一个值; if是一个语句,返回一个值并且不能在任何地方使用。

如果你必须避免三元运算符,你最好的选择是做类似的事情:

if (url == "") {
url = "#some-page";
}

load(url);

您也可以使用 || 达到同样的效果:

function (url) {
load(url || "#some-page");
}

这是编写代码的最短且最惯用的方式。

关于JavaScript 三元运算符变成完整的 if/else 语句问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8832850/

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