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

JavaScript010

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

1、[] ==[] 因为数组是引用类型的,两个数组的引用不可能相等,所以值为false 2、'0.00' == 0 数字型字符串与纯数字之间的比较,js会将字符串转换成数字再作比较,转换后的结果是 0.00 == 0 ,所以值为false。 3、'0'<1 同上,字符串转换成数字 0 <1 ,所以值为false 4、'abc' == 0 这里的字符串'abc'不是数字型字符串,无法转换成数字,将这种类型的字符串与数字做比较时,会先转换成NaN,所以值为false 5、'11'<'2' 两个数字型字符串之间的比较,进行这种比较时会依次取每个字符转换成ASCII码进行比较,因为'1'的ASCII码小于'2',后面就不用再往下进行比较了。 6、1 == true'1' == true'2' == true1为true,0为false 这是众所周知的,所以1 == true的值为true。 在js中,字符串和布尔值进行比较的时候,会把布尔值转化成数字类型。所以'1' == true的比较会转换成'1' == 1,值也是为true的。'2' == true的比较会转换成'2' == 1,值必然为false。 但是,!!'2' == true 返回的是true,因为用两个非符号 !! 可以把非空字符串转换成true。 7、== 与 ===的区别 在js中,==表示相等(值相等),===表示恒等(值和类型都要相等)。在用==比较时如果被比较的两者类型不同,会先做类型转换再判断值得大小,如果是===类型和值必须都相等。

js里面比较中文字符串实际是比较中文字符串的unicode编码值!

第一个汉字的unicode编码是:19968表示汉字“一”;

最后一个汉字的unicode编码是:40869标识汉字“龥”(yu,四声);

开始和结束之间的unicode代码区间是计算机能打出来的所有汉字。

比较的话可以直接用运算符比较,例如:

var a="一"

var b="龥"

a>b //false

a<b //true

a==b //false

a===b //false

//但是不能用“-”号,用“-”号js会尝试强转a变量的值为number,如果不能转成功会显示NaN,

//NaN <a href="https://www.baidu.com/s?wd=%E5%8A%A0%E5%87%8F%E4%B9%98%E9%99%A4&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9nH6zuWT4mH6YuWfsnAm10ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHRLP1nYP1TsPWfLPjbdP10zn0" target="_blank" class="baidu-highlight">加减乘除</a>结果都是NaN

//用“+”,js会优先执行拼接字符得到

a+b // "一龥"

实际计算机内部执行比较是有类似如下操作的:

var a="一"

var b="龥"

a.charCodeAt(0)>b.charCodeAt(0) // false