js 字符串与数字、字符串与布尔值、数组与数组之间的比较

1、[] ==[]

false

因为数组是引用类型的,两个数组的引用不可能相等,所以值为false

2、'0.00' == 0

true

数字型字符串与纯数字之间的比较,js会将字符串转换成数字再作比较,转换后的结果是 0.00 == 0,所以值为false。

3、'0'<1

true

同上,字符串转换成数字0 < 1,所以值为false

4、'abc' == 0

false

这里的字符串'abc'不是数字型字符串,无法转换成数字,将这种类型的字符串与数字做比较时,会先转换成NaN,所以值为false

5、'11'<'2'

true

两个数字型字符串之间的比较,进行这种比较时会依次取每个字符转换成ASCII码进行比较,因为'1'的ASCII码小于'2',后面就不用再往下进行比较了。

6、1 == true '1' == true '2' == true

true true false

1为true,0为false这是众所周知的,所以1 == true的值为true。
在js中,字符串和布尔值进行比较的时候,会把布尔值转化成数字类型。所以'1' == true的比较会转换成'1' == 1,值也是为true的。'2' == true的比较会转换成'2' == 1,值必然为false。
但是,!!'2' == true 返回的是true,因为用两个非符号!!可以把非空字符串转换成true。

7、== 与 ===的区别
在js中,==表示相等(值相等),===表示恒等(值和类型都要相等)。在用==比较时如果被比较的两者类型不同,会先做类型转换再判断值得大小,如果是===类型和值必须都相等。

你可能感兴趣的:(js 字符串与数字、字符串与布尔值、数组与数组之间的比较)