Ila*_*sda 3 javascript jquery if-statement ternary-operator
我有以下三元声明:
$.history.init(function(url) {
load(url == "" ? "#some-page" : url);
});
Run Code Online (Sandbox Code Playgroud)
我已将其重写为:
$.history.init(function(url) {
load(
if( url == ""){ url = "#some-page"
} else { url = url }
);
});
Run Code Online (Sandbox Code Playgroud)
我现在是第3行的错误if(url == ""),但我不明白是什么错误.
任何建议都非常感谢.
在JavaScript中,一个if是不表达.它不返回值,也不能放入函数调用中.也就是说,这是无效的:
func(if (a) { ... } else { ... });
Run Code Online (Sandbox Code Playgroud)
这是if和之间的主要区别?:- 运算符是一个表达式并返回一个值; if是一个声明,并没有返回值,不能随处使用.
如果你不得不避免使用三元运算符,最好的办法就是:
if (url == "") {
url = "#some-page";
}
load(url);
Run Code Online (Sandbox Code Playgroud)
您还可以使用||以下方法实现相同的效果:
function (url) {
load(url || "#some-page");
}
Run Code Online (Sandbox Code Playgroud)
这是编写代码的最短且最惯用的方式.