不知道有没有知情的大大分析一下?
//覆盖原生的isNaN()方法实现,在不同浏览器上有2~10倍性能提升。
window["isNaN"] = function(value:number):boolean{
value = +value;
return value !== value;
};
代码位置
https://github.com/egret-labs/egret-core/blob/master/src/egret/web/EgretWeb.ts#L111
查阅了一些相关资料
http://jacksondunstan.com/articles/450
发现另外一个isNaN的替换方法
return !(val <= 0) && !(val > 0);
测试(customIsNaN为egret的方法,customIsNaN2为另一个方法),不知道测试方法是否正确
http://jsperf.com/isnanperfcustom/4
在Maxthon和Chrome45,在参数为数值(number)时,egret覆盖的方法(customIsNaN)稍微快一点,传入参数为字符串(string)时,原生的isNaN更快
在Microsoft Edge,无论传入number还是string,都是原生的isNaN更快
感觉真的是画蛇添足、然并卵的节奏啊