Javascript 用于分配属性的逻辑运算符 &&

Javascript Logical Operator && used to Assign Properties

我遇到了这段代码:

var value = this.newTodo && this.newTodo.trim();

在这个例子中:http://codepen.io/anon/pen/rONEMQ?editors=101

我不明白 AND (&&) 运算符试图做什么完成。

据我了解,&& 运算符是将多个属性分配给一个值,但这里似乎并非如此。

我的代码示例,我没有看到任何区别,因为当我使用它时:

var value = this.newTodo && this.newTodo.trim();

而不是这个:

var value = this.newTodo;

或者只是这样:

var value = this.newTodo.trim();

谁能解释一下,上面和示例中的初始行与 && 有什么关系?

var value = this.newTodo && this.newTodo.trim();

如果 this.newTodo 不是“虚假”值之一,即 ""0falseundefinednull , [](我确定我忘记了一些),然后是 value = this.newTodo.trim(),否则 value = this.newTodo(可能是 ""0falseundefinednull[] 等)

I my code example, I don't see any difference, for when I use this:

var value = this.newTodo && this.newTodo.trim();

Instead of this:

var value = this.newTodo;

如果this.newTodo是"Hello World" ...你是对的,没有区别

if this.newTodo id " Hello World " ... 值将是 "Hello World" ... 即 trimmed of leading和尾随空格