js比较字符串的问题

JavaScript017

js比较字符串的问题,第1张

在JavaScript中,字符串的比较,是字符按从左到右一一对应比较的。

如:

"hello" >"hi"

先对首字母"h"进行比较。因为相等,所以再对下一位进行比较。

而单个字符的比较,实际上是ASCII码的比较。

字母"e"的ASCII码对应编号是101,而"i"的对应编号是105,所以 "e" >"i" 会返回false。

对上面字符串的比较,可以拆分理解为:

"h" >"h" &&

"e" >"i" &&

"l" >"" &&

"l" >"" &&

"o" >""

因此,

"hello" >"hi" // return false

将对象转化为字符串,然后在将字符串转化成数字,进行比较。 对象是先隐式调用toString(),然后再调用Number().

都会返回 true

比较的是在内存之中是不是同一个地址。

两边都先转化为数值,然后进行比较。

会将boolean转化为 数值,然后进行比较。