Javascript 无条件变量赋值

Javascript 无条件变量赋值,javascript,variables,variable-assignment,Javascript,Variables,Variable Assignment,我从服务中得到一个变量,它可以是真的、假的或未定义的。如果它是真的或假的,我必须保持它,否则我必须设置为真 我在想怎么做,我用了: obj.foo != false && (obj.foo = true); 有没有最好的办法?我的意思是,我可以使用三元运算符,但在某些情况下,我的变量已经是false/true,那么我就不需要三元运算符的else语句了。我认为这是可行的:foo==未定义的| | foo var foo=未定义; console.logfoo==未定义的|

我从服务中得到一个变量,它可以是真的、假的或未定义的。如果它是真的或假的,我必须保持它,否则我必须设置为真

我在想怎么做,我用了:

  obj.foo != false && (obj.foo = true);
有没有最好的办法?我的意思是,我可以使用三元运算符,但在某些情况下,我的变量已经是false/true,那么我就不需要三元运算符的else语句了。

我认为这是可行的:foo==未定义的| | foo

var foo=未定义; console.logfoo==未定义的| | foo; var foo=真; console.logfoo==未定义的| | foo; var foo=假;
console.logfoo==未定义的| | foo 类似这样的方法会奏效:

function invokeMe () {
  var objectsArray = [{name: "object1", trueOrNot: true}, 
                {name: "object2", trueOrNot: false},
                {name: "object3", trueOrNot: ''}
               ];
  objectsArray.forEach(function (object) {
  object.trueOrNot = object.trueOrNot !== false ? true : false;
  console.log(object);
});
}

invokeMe();

您正在if语句中分配它。发布整个代码段。obj.foo=obj.foo!==未定义?真的,也许是这样?foo===undefined | | foo===true您甚至可以尝试foo===undefined | | foothat代码总是将值设置为true,不是吗?不-只有当obj.foo=undefined或其实际值从一开始就是true时,才会将值设置为true。正如我对这篇文章的理解,如果这个值是假的,那么它就不应该是真的。因此,如果obj.foo=false,此代码将只将obj.foo设置为其实际值-表示false:总结:如果Obj.foo=true,Obj.foo将保持true。如果obj.foo=false,obj.foo将保持false。如果obj.foo=undefined,obj.foo将被设置为true。嗯,看起来你是对的-我可能在过去做了一些不同的事情,当我做这样的事情时,比我记得的要多。我们现在已经用一个类似的例子制作了一个JSFIDLE。编辑评论