您能解释一下这两个javascript示例吗?

您能解释一下这两个javascript示例吗?,javascript,Javascript,1:为什么foo&&baz的结果不是1?因为真的是1 var foo = 1; var baz = 2; foo && baz; // returns 2, which is true 2:console.log(foo++bar)中有两个加号,它们是什么意思 var foo = 1; var bar = '2'; console.log(foo + +bar); 这是因为&&(逻辑AND)运算符返回其计算的最后一个操作数的值。由于foo是true,它必须计算bar以确

1:为什么
foo&&baz
的结果不是1?因为真的是1

var foo = 1;
var baz = 2;

foo && baz;   // returns 2, which is true
2:console.log(foo++bar)中有两个加号,它们是什么意思

var foo = 1;
var bar = '2';
console.log(foo + +bar);

这是因为
&&
(逻辑AND)运算符返回其计算的最后一个操作数的值。由于
foo
true
,它必须计算
bar
以确定表达式的结果(只有
bar
也是
true
,它才会是
true

与之相反的是
|
(逻辑或)运算符。在这种情况下,由于
foo
true
,表达式的结果已知为
true
,而无需计算
bar
,因此将返回
foo
的值


关于第二个问题,一元
+
运算符允许将字符串
'2'
转换为后面的数字
2
。因此,根据这一点,如果两个值都为真,javascript将返回最后一个值&

&
返回最后一个计算值的值。'&&'是一个运算符。大多数情况下,它是在这样的上下文中使用的

if ( something && somethingelse ) {}
换句话说

0 && 2 //would return 0 because 0 is a falsy value
12 && 10 && 0 && 100 // would return 0 to 
10 && 123 && "abc" // returns "abc"
+
是一个数学运算符,但它可用于将字符串转换为数字

1 + 1 = 2
1 + '1' = 11 //van damme would like this one
1 + +'1' = 2 // somce '1' got converted to a number

这是两个非常独立的问题,可能应该分开。这是javascript而不是jQuery。我不认为这是一个简单的问题,但它是有效的。例如,您可以简单地使用parseInt('1')