好吧,雖然我嵌套一些驗證,如果,我已經談到性能。什麼是更快?兩個比較或一個比較與一個邏輯檢查?
讓我們假設我驗證票的節目,我可以做這樣的事情:
var validateVipTicket = function (ticketInfo) {
if (ticketInfo.isPaid) {
if (ticketInfo.isOver16) {
if (ticketInfo.isVip) {
return true;
} else return 'Not Vip';
} else return 'Not old enought';
} else return 'Need to pay first';
};
,並調用它像這樣validateVipTicket({isPaid: true, isOver16: true, isVip: true});
但 讓我們假設並不重要指定發生了什麼錯誤,我只是想要一個真或假,然後,什麼方法會更快?
if (ticketInfo.isPaid) {
if (ticketInfo.isOver16) {
OR
if (ticketInfo.isPaid && ticketInfo.isOver16) {
在第一種情況,第一個屬性將被選中,當它完成,第二個屬性將被檢查。在第二種情況中,第一個屬性將被檢查,第二個屬性將被檢查,並且它們兩個屬性將相互比較。這是正確的嗎?我錯過了什麼嗎?哪個更快,爲什麼?
「CPU發生了什麼」。好點子。低級別是一個很好的解釋。 – Rodmentou