javascript - 在Egret源码看到这样一段代码,isNaN()性能提升?
天蓬老师
天蓬老师 2017-04-10 16:00:10
0
0
319

不知道有没有知情的大大分析一下?

//覆盖原生的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更快

感觉真的是画蛇添足然并卵的节奏啊

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

Antworte allen(0)
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!