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

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

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

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

天蓬老师
天蓬老师

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

모든 응답(0)
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!