body{ cursor: url("https://images.cnblogs.com/cnblogs_com/szqblog/1889956/o_201130135019Cursor.png"), auto; }

隐式转换

 

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
 
posted @ 2020-12-03 20:52  1234前来报到  阅读(77)  评论(0编辑  收藏  举报