Javascript 什么是表达&&;表达式语法是什么意思?
这一行的作用是什么Javascript 什么是表达&&;表达式语法是什么意思?,javascript,short-circuiting,Javascript,Short Circuiting,这一行的作用是什么parent&&(this.parent.next=this)平均值? 它看起来就像坐在那里,什么也不做,不是一个if声明或承诺或任何事情。这种编码风格有名字吗 var Particle = function(i, parent) { this.next = null; this.parent = parent; parent && (this.parent.next = this); this.img = new Ima
parent&&(this.parent.next=this)代码>平均值?
它看起来就像坐在那里,什么也不做,不是一个if声明或承诺或任何事情。这种编码风格有名字吗
var Particle = function(i, parent)
{
this.next = null;
this.parent = parent;
parent && (this.parent.next = this);
this.img = new Image();
this.img.src = "http://www.dhteumeuleu.com/images/cloud_01.gif";
this.speed = speed / this.radius;
}
它在我正在查看的动画文件中的多个位置。这是另一个例子<代码>(!touch&&document.setCapture)和&document.setCapture()代码>
这是英语的简写
if (parent) {
this.parent.next = this
}
如果parent为false,则不弹出(this.parent.next=this),例如:
parent = false;
parent && alert("not run");
短路评估:
由于逻辑表达式是从左到右求值的,因此称为“短路”求值
variable && (anything); // anything is evaluated if variable = true.
variable || (anything); // anything is evaluated if variable = false
可用于变量赋值:
var name = nametemp || "John Doe"; // assignment defaults if nametemp is false
var name = isValid(person) && person.getName(); //assignement if person is valid
这是一个非常方便维护的快捷方式。不太直接。在javascript中,任何表达式都可以进行逻辑计算。由于&&是一个带短路的二进制运算符,如果第一个表达式的计算结果为false(javascript中有几个表达式的计算结果为false),则不会执行&&的正确部分。这没有什么好处。如果(parent)this.parent.next=this,那么当其他人维护/读取您的代码时,它只会使您更难理解。@Leushenko代码>。这里:现在它只有一行,视觉上没有那个奇怪的布尔表达式复杂。由于赋值基本上是一个语句(它会产生副作用),所以在大多数情况下,试图将其硬塞进表达式中是一个坏主意,这样最后一点就没有意义了。另请参见和
var name = nametemp || "John Doe"; // assignment defaults if nametemp is false
var name = isValid(person) && person.getName(); //assignement if person is valid