1
|
console.log( 1 + "2" + "2" ); 做加法时要注意双引号,当使用双引号时,JavaScript认为是字符串,字符串相加等于字符串合并。 |
因此,这里相当于字符串的合并,即为122.
2.
1
|
console.log( 1 + + "2" + "2" ); |
第一个+"2"中的加号是一元加操作符,+"2"会变成数值2,因此1+ +"2"相当于1+2=3.
然后和后面的字符串“2”相合并,变成了字符串"32".
3.
1
|
console.log( "A" - "B" + "2" ); |
"A"-"B"的运算中,需要先把"A"和"B"用Number函数转换为数值,其结果为NaN,在剪发操作中,如果有一个是NaN,则结果是NaN,因此"A"-"B"结果为NaN。
然后和"2"进行字符串合并,变成了NaN2.
4.
1
|
console.log( "A" - "B" + 2 ); |
根据上题所述,"A"-"B"结果为NaN,然后和数值2进行加法操作,在加法操作中,如果有一个操作数是NaN,则结果为NaN。
----------------------------------再来一题--------
var test=new Boolean(); //没有内容就是undefined,这个就是false
var test=new Boolean(0); //0就是false,1是true
var test=new Boolean(null);//null跟undefined一样,都是false
var test=new Boolean("");//字符串里面有内容的话才是true,没有内容就是false
var test=new Boolean(NaN); //NaN是一种数值类型,是false
总结: 对象 无初始值 或者其值为 0、-0、null、""、false、undefined 或者 NaN,那么对象的值为 false
-----------------再来一题----------------
console.
log
(([])?
true
:
false
); // 没有 == 时,用Boolean, Boolean([])--> true; (true) ? true : false;
console.
log
(([]==
false
?
true
:
false
)); // 有 == , 用Number。Number([])--> 0,false --> 0;(0 == 0) ? true : false;
console.
log
(({}==
false
)?
true
:
false
);// 还是一样,有 == , 用Number。 Number({})--> NaN, false --> 0;(NaN == false) ? true : false;
Boolean([]); //true
Number([]); //0
Number({}); // NaN
Number(false); //0