Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么布尔值本质上是单例的[JavaScript]_Javascript - Fatal编程技术网

为什么布尔值本质上是单例的[JavaScript]

为什么布尔值本质上是单例的[JavaScript],javascript,Javascript,最后一条语句返回true,这意味着bool1和bool2指向同一个对象实例,我想了解为什么会出现这种情况?boolean是数据类型,而不是对象。首先检查类型是否相同,然后检查值是否相同 如果两个布尔操作数都是true或都是false,则两个布尔操作数严格相等 如果以的对象实例为例 Boolean对象是布尔值的对象包装器 您将得到严格相等的false var bool1=新布尔值(false), bool2=新布尔值(false); console.log(bool1==bool2)布尔值是数据

最后一条语句返回true,这意味着bool1和bool2指向同一个对象实例,我想了解为什么会出现这种情况?

boolean
是数据类型,而不是对象。首先检查类型是否相同,然后检查值是否相同

如果两个布尔操作数都是
true
或都是
false
,则两个布尔操作数严格相等

如果以的对象实例为例

Boolean
对象是布尔值的对象包装器

您将得到严格相等的
false

var bool1=新布尔值(false),
bool2=新布尔值(false);
console.log(bool1==bool2)
布尔值
是数据类型,而不是对象。首先检查类型是否相同,然后检查值是否相同

如果两个布尔操作数都是
true
或都是
false
,则两个布尔操作数严格相等

如果以的对象实例为例

Boolean
对象是布尔值的对象包装器

您将得到严格相等的
false

var bool1=新布尔值(false),
bool2=新布尔值(false);
console.log(bool1==bool2)三重相等(==)匹配值和类型。由于两者都是基元类型,因此返回true

如果bool1和bool2是同一个实例对象,那么更改一个值将更改另一个值,但当您更改bool1或bool时,它肯定不会更改其他值。

三重相等(==)匹配值和类型。由于两者都是基元类型,因此返回true

如果bool1和bool2是同一个实例对象,那么更改一个值将更改另一个值,但当您更改bool1或bool时,它肯定不会更改其他值

var bool1 = false
var bool2 = false

bool1 === bool2