&安培;&安培; javascript中字符串的运算符

时间:2014-06-05 07:14:55

标签: javascript string operators

我有以下表达式:

if(a && b === c) {//do something}  

如果我认为a,b和c是字符串,那么这个条件的含义是什么?

4 个答案:

答案 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,因为bc的内容不同。

var a = 'foo';
var b = true;
var c = 1;

将是false,因为bc的类型不同(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是否有一些真实价值。然后,它会检查bc是否具有相同的值相同的类型。 Read up on truthy and falsey values in JavaScript

答案 3 :(得分:1)

如果a有一些值(非空和&#34;&#34;)和b的值(字符串,区分大小写)等于c的值那么你的代码