Javascript !!(新数字(0))==真,但是!!(数字(0))==假,为什么?

Javascript !!(新数字(0))==真,但是!!(数字(0))==假,为什么?,javascript,casting,comparison,boolean-operations,Javascript,Casting,Comparison,Boolean Operations,为什么在谷歌Chrome的控制台上测试后,后两种行为会有所不同 /* number */ /* string */ 0 == false; '' == false; !!0 == false; !!'' == false; Number

为什么在谷歌Chrome的控制台上测试后,后两种行为会有所不同

               /* number */                       /* string */
         0               == false;         ''               == false;
         !!0             == false;         !!''             == false;
         Number(0)       == false;         String('')       == false;
         !!Number(0)     == false;         !!String('')     == false;
         new Number(0)   == false;         new String('')   == false;
         (new Number(0)) == false;         (new String('')) == false;
         !!new Number(0) == true;          !!new String('') == true;
换句话说,如果使用new关键字调用Number或String,而例如Array和newarray的工作方式相同,那么为什么对boolean的强制转换不同呢

还有,奖金问题。为什么==0?我希望比较会隐式地将0转换为“0”,因为这将是一个扩大的转换,而在比较之前将两者转换为布尔值是一个缩小的转换。

new为您提供了一个对象。因此进行比较。

new为您提供了一个对象。因此进行了比较

new Number0返回一个数字对象,无论其值如何,该对象都是真实的。因此真的。 Number0返回数字0,这是错误的:!!假==假 至于你的奖金问题,当你使用双等号时,会被转换成整数。parseInt==0

new Number0返回一个数字对象,无论其值如何,该对象都是真实的。因此真的。 Number0返回数字0,这是错误的:!!假==假
至于你的奖金问题,当你使用双等号时,会被转换成整数。parseInt==0。

我明白了。但是数组给了我一个数组对象,我认为它的数字和字符串的工作方式不同?但是对象的行为方式不同-例如,这只狗的行为方式不同于猫。@JavaScript中的卡米洛马丁数字和字符串通常是标量值。如果对字符串调用方法,它将在执行函数所需的时间内转换为对象,然后再转换回字符串。构建他们的对象是唯一真正解决这个问题的方法。原因很简单,除非它们是显式构造的,否则字符串和数字将保持为标量。0==false和{}==true。@我明白了。null是一个对象吗?因为,typeof null==='object'。。。但是null==false。。。这很令人困惑。@CamiloMartin JS对这些东西很困惑。。。从技术上讲,Null是一个对象,但它也是一个特例,它总是转换为false。如果你想要更奇怪的东西,楠!==南;我懂了。但是数组给了我一个数组对象,我认为它的数字和字符串的工作方式不同?但是对象的行为方式不同-例如,这只狗的行为方式不同于猫。@JavaScript中的卡米洛马丁数字和字符串通常是标量值。如果对字符串调用方法,它将在执行函数所需的时间内转换为对象,然后再转换回字符串。构建他们的对象是唯一真正解决这个问题的方法。原因很简单,除非它们是显式构造的,否则字符串和数字将保持为标量。0==false和{}==true。@我明白了。null是一个对象吗?因为,typeof null==='object'。。。但是null==false。。。这很令人困惑。@CamiloMartin JS对这些东西很困惑。。。从技术上讲,Null是一个对象,但它也是一个特例,它总是转换为false。如果你想要更奇怪的东西,楠!==南;我懂了。我以为两个人都会归还物品。。。一定是听错了。哇,我没想到会变成整数。我还以为他们都是布尔人呢!还有5分钟。我可以接受你的回答。解释转换规则。字符串和数字有特殊情况,我明白了。我以为两个人都会归还物品。。。一定是听错了。哇,我没想到会变成整数。我还以为他们都是布尔人呢!还有5分钟。我可以接受你的回答。解释转换规则。字符串和数字有特殊情况。