Ich arbeitete an einem Projekt und dieses Problem tauchte in meinem Kopf auf. Ich bin mir nicht sicher, ob es schon einen solchen Beitrag gibt, aber ich habe keinen gefunden.JS - Wenn die Bedingung nur 1 Else betrifft, wirkt sich die Prüfreihenfolge auf die Leistung aus?
Lassen Sie sagen, wenn ich diese:
function checks(s) {
if (s.length == 4 && s[0] == "a") {
//action
} else {
//other action
}
}
checks("a001");
checks("else");
checks("else");
checks("else");
und diese:
function checkb(b) {
if (b) {
//action
} else {
//other action
}
}
checkb(true); //Suppose i'm passing these through another function
checkb(false); //so it makes sense for me doing these
checkb(false);
checkb(false);
Da jede Weise der if-Anweisung einmal die Bedingungen zu prüfen haben wird, wenn die Frequenz der Aktionen sind bekannt (zB weiß ich, dass der else Teil am häufigsten durchgeführt wird). Führt die Überprüfung auf "nicht Bedingungen" dazu, dass der Code schneller ausgeführt wird oder beeinflusst die Überprüfung von "nicht Bedingung" nicht einmal die Leistung? (Angenommen, ich baue einen komplizierten node.js-Server mit vielen dieser Art von Funktionen.)
Addition Frage: Tun die meisten Programmiersprachen das gleiche auch theoretisch?
Ich habe mich nur gefragt, ob es die Leistung beeinflusst (praktisch oder theoretisch).
Es ist vernachlässigbar und hat keinen Sinn zu optimieren. – zerkms
In diesem Fall wäre mir die Leistung egal, es sei denn, diese Funktion wird 100 Millionen Mal in der Schleife ausgeführt. – dfsq
Ich stimme @zerkms überhaupt keinen Unterschied in Bezug auf die Leistung –