我怎么能把它写成三元形式:
if (localStorage.getItem("txt")) {
newNote(localStorage.getItem("txt"), localStorage.getItem("name"));
} else {
newNote();
}
这似乎不起作用:
newNote(localStorage.getItem("txt") ? localStorage.getItem("txt"), localStorage.getItem("name") ? newNote();
答案 0 :(得分:2)
试试这个:
var note = localStorage.getItem("txt")?newNote(localStorage.getItem("txt"), localStorage.getItem("name")):newNote();
语法为boolean?expr1:expr2;
但我建议使用这样的东西:
var note=getNode(localStorage.getItem("txt"),localStorage.getItem("name"));
...
function getNode(txt,name){
return txt.length>0?newNote(txt,name):newNode();
}
答案 1 :(得分:2)
回答这个问题:
localStorage.getItem("txt")
? newNote(localStorage.getItem("txt"), localStorage.getItem("name"))
: newNote();
但说实话,我不明白为什么要以这种方式完成,它的可读性较差。我只是以一种方式创建newNote
函数,如果给出的参数是null
,它就像没有参数的newNote()
。在这种情况下,您可以致电:
newNote(localStorage.getItem("txt"), localStorage.getItem("name"))
主代码和if
函数中没有任何newNote
:
function newNote(text, name) {
if (text === null) {
// alias to `newNote()`
} else {
// do whatever with `text` and `name`
}
}
答案 2 :(得分:1)
localStorage.getItem("txt") ? newNote(localStorage.getItem("txt"), localStorage.getItem("name")) : newNote();
答案 3 :(得分:1)
为什么你会以这种丑陋的方式做到这一点?
如果参数设置了
,只需检查newNote
正文
function newNote(a, b) {
a = a || 'default';
b = b || 'default';
}
答案 4 :(得分:0)
var a= localStorage.getItem("txt")?newNote(localStorage.getItem("txt"),localStorage.getItem("name"):newNote();
答案 5 :(得分:0)
您不需要条件运算符。试试这个:
var txt = localStorage.getItem("txt");
newNote(txt, txt && localStorage.getItem("name"));
如果txt
为undefined
,那么newNote
将在没有任何参数的情况下被调用,如果是:txt
和name
。
答案 6 :(得分:0)
我喜欢@ ZER0建议的方式,但我会这样做。
只是为了简化阅读我会将localStorage.getItem("txt")
和localStorage.getItem("name")
分配给变量:
var a = localStorage.getItem("txt");
var b = localStorage.getItem("name");
test(a ? [a, b] : []);
function test(options){
if(options.length > 0){
alert("a");
}else{
alert("ab");
}
}