js中的字符串可以比较大小吗?如果可以请问他是如何比较的

JavaScript045

js中的字符串可以比较大小吗?如果可以请问他是如何比较的,第1张

js的字符串按字符在unicode中的码位来比较大小

"A"的码位值65

"a" 的码位值97

"b"的码位值为98

"你"的码位值为20320

后者比前者大

sort 方法

arrayobj.sort(sortfunction)

可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。

sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。

如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:

负值,如果所传递的第一个参数比第二个参数小。

零,如果两个参数相等。

正值,如果第一个参数比第二个参数大。

数组.sort(sortDOM)

function sortDOM(a,b){

//A商品价格

var priceNodeA=a.getElementsByClassName("price")[0]

//B商品价格

var priceNodeB=b.getElementsByClassName("price")[0]

var priceA=parseFloat(priceNodeA.innerHTML.substr(1))*1000

var priceB=parseFloat(priceNodeB.innerHTML.substr(1))*1000

//数字大小比较,定义比较规则(原理:字符转成ASCII值直接按数字比较大小)

//字符串放到数组中,用sort()方法默认按ASCII 字符顺序规则

//或者自己定义:比如截取每个字符串的第一个字符,转成ASCII值,比较数字大小,这里的规则就随便写了

return priceA-priceB

}