比较 Javascript 中的类型

ped*_*dro 5 javascript comparison typeof

我在 Crockford 的书Javascript: The Good Parts 中看到他进行了这样的类型比较:

return typeof a < typeof b ? -1 : 1;
Run Code Online (Sandbox Code Playgroud)

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

函数<数字<对象或数组<字符串<未定义

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

Rob*_*b W 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>
Run Code Online (Sandbox Code Playgroud)

tfnosux是 types 的第一个字符。该charCodeAt方法返回 JavaScript 中字符的数字 charCode。

我在上一个块中添加了每种类型的示例。大多数 JavaScript 开发人员都知道第一种类型。最后一个类型 ,xml不太为人所知,可以通过typeofEX4上使用来获得。

演示typeof: http: //jsfiddle.net/9G9zt/1/