Qan*_*avy 8 javascript performance boolean
根据ECMAScript规范,两者一元逻辑非运算符(!)和该Boolean()函数使用的内部功能ToBoolean(),以及NOT操作者也做了一些检查,以逆转的结果.那么为什么双逻辑NOT运算比运行函数快得多Boolean()呢?
我使用以下代码来测试哪个更快:
function logicalNotOperator() {
var start = performance.now();
for (var i = 0; i < 9999999; i++) !!Math.random();
return 0.001 * (performance.now() - start);
}
function booleanFunc() {
var start = performance.now();
for (var i = 0; i < 9999999; i++) Boolean(Math.random());
return 0.001 * (performance.now() - start);
}
var logicalNotOperatorResult = logicalNotOperator();
var booleanFuncResult = booleanFunc();
var diff = booleanFuncResult - logicalNotOperatorResult;
console.log('logicalNotOperator:', logicalNotOperatorResult);
console.log('booleanFunc:', booleanFuncResult);
console.log('diff:', diff);Run Code Online (Sandbox Code Playgroud)
注意:我不是指new Boolean()构造函数,而是Boolean()强制它赋予布尔值的参数的函数.
| 归档时间: |
|
| 查看次数: |
1091 次 |
| 最近记录: |