Javascript 快速区分数字和对象

Javascript 快速区分数字和对象,javascript,performance,Javascript,Performance,我有一个复杂的JavaScript数据结构,由数字和容器(本例中为数组)组成。存储和处理此信息的最快和/或内存效率最高的方法是什么?是否有比[1,2]、[3,4]]更明显、速度更快和/或记忆更好的东西,例如[1,2]、[3,4]]在扫描时需要类似于typeof的东西来区分树枝和树叶?这个结构非常大,大约有一百万个数字 我已经建立了一个jsperf测试来评估一些区分数字和对象的方法,typeof似乎是除Opera和IE之外最快的: 试试: isNaN(myVar) 返回trueidmyVar不是

我有一个复杂的JavaScript数据结构,由数字和容器(本例中为数组)组成。存储和处理此信息的最快和/或内存效率最高的方法是什么?是否有比[1,2]、[3,4]]更明显、速度更快和/或记忆更好的东西,例如[1,2]、[3,4]]在扫描时需要类似于typeof的东西来区分树枝和树叶?这个结构非常大,大约有一百万个数字

我已经建立了一个jsperf测试来评估一些区分数字和对象的方法,typeof似乎是除Opera和IE之外最快的:

试试:

isNaN(myVar)
返回
true
id
myVar
不是数字,否则返回false


虽然,很明显,这个函数并不是完全没有bug。。。(参见我链接到的文档)

对我来说似乎是一个Opera bug:)@Jack:
{}。length
也是
未定义的,所以它只适合检查数组/字符串;-)@我假设它只能是数组或数字。无论如何,速度也不是很快:)谢谢你的主意!添加到jsperf。isNaN的速度很慢,但知道这一点很好。@jjrv:我看到你添加了它。我非常惊讶的是,缓慢的o.Omuch像+myVar一样,isNaN(myVar)首先转换为字符串,然后转换为数字。序列化数组可能需要一些时间。@jjrv:Ah,这很有意义。很高兴知道!