1

我怎样才能把它写成三元形式:

  if (localStorage.getItem("txt")) {
    newNote(localStorage.getItem("txt"), localStorage.getItem("name"));
  } else {
    newNote();
  }

这似乎不起作用:

newNote(localStorage.getItem("txt") ? localStorage.getItem("txt"), localStorage.getItem("name") ? newNote();
4

7 回答 7

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`
    }
}
于 2013-10-24T08:04:27.043 回答
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();
}
于 2013-10-24T07:54:26.733 回答
1

你为什么要以如此丑陋的方式做这件事?

newNote如果设置了参数,只需检查你的身体

function newNote(a, b) {
  a = a || 'default';
  b = b || 'default';
}
于 2013-10-24T07:55:47.053 回答
1
localStorage.getItem("txt") ? newNote(localStorage.getItem("txt"), localStorage.getItem("name")) : newNote();
于 2013-10-24T07:53:23.517 回答
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");
    }
}
于 2013-10-24T08:14:05.217 回答
0
  var a= localStorage.getItem("txt")?newNote(localStorage.getItem("txt"),localStorage.getItem("name"):newNote();
于 2013-10-24T07:54:46.427 回答
0

您不需要条件运算符。尝试这个:

var txt = localStorage.getItem("txt");
newNote(txt, txt && localStorage.getItem("name"));

if txtis undefined, thennewNote将在没有任何参数的情况下被调用,如果是: with txtand name

于 2013-10-24T07:55:09.983 回答