我有以下表达式:
if(a && b === c) {//do something}
如果我认为a,b和c是字符串,那么这个条件的含义是什么?
答案 0 :(得分:3)
这等于if (a == true && b === c)
。 (请注意,==
会失去比较。例如。"foo"
宽松地等于true
,但是""
与松散等于真,因此这表示“ if a
不是空字符串,b
具有相同的内容,与c
的类型相同,然后执行某些操作“))。
<强>实施例强>:
var a = 'foo';
var b = 'bar';
var c = 'bar';
true
因为a
不是假的(非空字符串是真的),b
是相同类型且与c
具有相同内容。
var a = '';
var b = 'bar';
var c = 'bar';
将false
因为a
是假的(空字符串是假的)。
var a = 'foo';
var b = 'rab';
var c = 'bar';
将false
,因为b
与c
的内容不同。
var a = 'foo';
var b = true;
var c = 1;
将是false
,因为b
与c
的类型不同(boolean
vs number
- ==
这将是true
{1}},true == 1
)。
答案 1 :(得分:1)
这意味着:
a is truthy
AND
b exactly equal to c (including type)
这里a is truthy
表示它不是('undefined'或“”或'null'或0或'NaN'或'FALSE')
答案 2 :(得分:1)
你的表达扩展到:
if (a) {
if (b === c) {
// do something
}
}
首先检查a
是否有一些真实价值。然后,它会检查b
和c
是否具有相同的值和相同的类型。 Read up on truthy and falsey values in JavaScript
答案 3 :(得分:1)
如果a有一些值(非空和&#34;&#34;)和b的值(字符串,区分大小写)等于c的值那么你的代码