比较Javascript中的类型

时间:2011-12-23 17:39:34

标签: javascript comparison typeof

我在Crockford的书 Javascript:The Good Parts 中看到他做了这样的比较:

return typeof a < typeof b ? -1 : 1;

我自己做了测试,我认为这是不同类型的“排序”:

  

功能&lt;数字&lt;对象或数组&lt;字符串&lt;未定义

这是JS实际进行比较的方式吗?

2 个答案:

答案 0 :(得分:4)

typeof运算符返回一个字符串。字符串按其数值进行比较。

因此,<比较顺序为:

type       charCode ("tfnosux".charCodeAt(i))   Example
boolean     98                                   true
function   102                                   Date
number     110                                   123
object     111                                   []
string     115                                   ""
undefined  117                                   undefined
xml        120                                   <x></x>

tfnosux类型的第一个字符。 charCodeAt方法返回JavaScript中字符的数字charCode。

我在前一个块中添加了每种类型的示例。大多数JavaScript开发人员都知道第一类。最终类型xml不太为人所知,可以使用EX4上的typeof获取。

演示typeofhttp://jsfiddle.net/9G9zt/1/

答案 1 :(得分:1)

这不重要。 typeof返回一个字符串,比较运算符适用于字符串,方法是对代码点值值序列执行“简单的词典排序”。

基本上,如果一个字符串以另一个字符串开头,那么这两个字符串中的较大者,否则将比较两者之间不同的第一个字符位置。

spec

的第11.8.5节