javascript数据类型

xiaoxiao2025-06-12  21

 

[] == [] false [] == ![] true [] == false true

1). []==[] 两个值都是对象时, 比较的是两个引用值在内存中是否是同一个对象.所以是false

对象和对象比较,是比较的引用,两个对象都是new出来的(新创建出来的),所以是不同的对象,不同的对象的引用是不同的,所以输出是false

只有对象和基本类型进行比较的时候,才会将对象转变成基本类型,再作比较。两个对象比较的时候是不会转成基本类型的,如:

var a = new String('hi');

var b = new String('hi');

a == 'hi';//true (先转换成基本类型再比较)

b == 'hi';//true(先转换成基本类型再比较)

但是 a == b;// false  (比较的是引用)

2).[]==![] 因为! 优先级比==高,所以我们先看 ![] , !是转变成布尔值,js中[]布尔值是true,所以![]为false,现在到判断==, 现在变成判断[]==false. 这时候[]不会变成布尔值,即true,会按照js标准 []看成0.于是最终转变为0==false,答案就出来了true.

 

 

转载请注明原文地址: https://www.6miu.com/read-5031698.html

最新回复(0)