Javascript中对此行的解释是什么?
<div class="row">
<div class="col-xs-6" style="background: red;">
..
</div>
<div class="col-xs-6 pull-right" style="background: orange;">
..
</div>
<div class="col-xs-6" style="background: green;">..
</div>
</div>
尽管我搜索了它,但我找不到任何提示。
谢谢
答案 0 :(得分:8)
这样做:
x
的值指定给matrix
; matrix = x
表达式的结果是指定的值(所有赋值表达式都是如此)。我们称这个值为“x值”。我不想从现在开始称它为x
,因为x
仅评估一次。matrix.length
分配给n
;否则,将x值分配给n
。例如,如果x
为[]
,则代码集matrix
指向同一个空数组x
,并将n
设置为{ {1}}(分配后0
)。其他示例(我在编辑您的问题之前编写了这些示例):如果matrix.length
是x
,则会将"foo"
设置为matrix
并设置"foo"
至n
(3
的{{1}})。如果length
为matrix
(假值),则会将x
设置为""
,将matrix
设置为""
}。如果n
为""
,则设置x
以引用同一个对象并将{foo:"bar"}
设置为matrix
(因为该对象没有n
属性)。你明白了。
#2是因为undefined
不仅仅是一个简单的逻辑AND运算符。 length
的作用如下:
&&
以获取其价值;让我们称之为a-value a && b
运算符的结果为a-value a
并将其作为&&
运算符 1 “Truthy”值是任何不是“虚假”的值。虚假值为b
,&&
,0
,null
,undefined
,当然还有""
。
答案 1 :(得分:0)
(matrix = x)
是x
对变量matrix
的赋值操作。这里x
是一个数组,因此这个操作的结果给出了一个真值,因此后面的部分发生了。
E.g。如果
var x, matrix = [], n;
n = (matrix = x) && matrix.length;
不起作用,因为(matrix = x)
是一个虚假的操作。 n
被分配undefined
(因为这是值x
)。