Javascript &引用;不支持的非原语比较“;论铬轮廓仪
我的应用程序有一个瓶颈 Chrome告诉我们问题在于Javascript &引用;不支持的非原语比较“;论铬轮廓仪,javascript,google-chrome-devtools,v8,Javascript,Google Chrome Devtools,V8,我的应用程序有一个瓶颈 Chrome告诉我们问题在于不支持非原语比较,我不确定我是否理解它的意思 下面是问题的确切代码(参见第6行) for(此.gdata中的var键){ var rows=this.gdata[key]; 对于(变量i=0;idt){ curr[key]=i>0&&rows[i-1];//曲轴无法对其进行优化,因为它必须将rows[i-1]转换为布尔值,并且不知道如何在不进行去优化的情况下进行转换。也许这样会更好 curr[key]=i>0?行[i-1]:false;曲轴无法
不支持非原语比较
,我不确定我是否理解它的意思
下面是问题的确切代码(参见第6行)
for(此.gdata中的var键){
var rows=this.gdata[key];
对于(变量i=0;idt){
curr[key]=i>0&&rows[i-1];//曲轴无法对其进行优化,因为它必须将rows[i-1]
转换为布尔值,并且不知道如何在不进行去优化的情况下进行转换。也许这样会更好
curr[key]=i>0?行[i-1]:false;
曲轴无法对其进行优化,因为它必须将行[i-1]
转换为布尔值,并且不知道如何在不进行去优化的情况下进行转换。也许这样会更好
curr[key]=i>0?行[i-1]:false;
我发现Chrome并不总是对发现此特定问题的行计时,也不表示花费时间最多的行。
在我的例子中,这种错误总是发生在时间比较中
如果将行[i].date>dt更改为行[i].date.getTime()>dt.getTime(),警告是否消失?我发现Chrome并不总是对发现此特定问题的行计时,也不表示花费时间最多的行。
在我的例子中,这种错误总是发生在时间比较中
如果将行[i].date>dt更改为行[i].date.getTime()>dt.getTime(),警告是否消失?行[i-1]
的类型是什么?可能V8在转换行[i-1]时遇到了困难
对象由于其复杂性而被转换为基本类型。重写对象原型上的valueOf
方法可能会有所帮助。@loa_in_它是一个对象行[i-1]的类型是什么?
?可能V8在转换行[i-1]时遇到了困难由于对象的复杂性,
对象转换为基本类型。在对象的原型上重写valueOf
方法可能会有所帮助。@loa_in_它是一个对象&
不仅返回true
而且false
&不仅返回true
和false
for (var key in this.gdata) {
var rows = this.gdata[key];
for (var i = 0; i < rows.length; i++) {
if (i === 0) first[key] = rows[i];
if (rows[i].date > dt) {
curr[key] = i > 0 && rows[i - 1]; // <---- problem is here
next[key] = rows[i];
break;
}
}
}