, the unary logical NOT operator (!
) ve the Boolean()
function kullanımı the internal function ToBoolean()
ve NOT Operatör aynı zamanda İşlemi tersine çevirmek için birkaç kontroller yapar hem. Öyleyse neden Boolean()
işlevini çalıştırmaktansa çift mantıklı bir NOT much faster işlemi? Neden Boole() çok yavaş Javascript'tedir? ECMAScript patent açıklamasına göre
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);
}
Not: Ben new Boolean()
yapıcı atıfta değilim, ama bir mantıksal değere verdi argüman coerces Boolean()
işlevi .
* "çok daha hızlı" * - Bazı kanıt? – dfsq
Boolean() veya yeni Boolean()? – StarPinkER
'Boolean()', her çağrı için yeni bir yürütme bağlamı yaratmanın zillerini ve çırpışlarını incelemelidir; Tahmin ederim ki * bu zamanın bir *** lotunun harcanmış olduğu yer. – Matt