有沒有在條件運算符===
和賦值運算符=
之間的性能有什麼區別?我寫了一些預存鉤中間件貓鼬,我想知道如果有太多的速度差的:JavaScript性能,條件語句VS賦值運算符
UserSchema.pre('save', function (next) {
if (!this.isModified()) {
return next();
}
this.crm.isUpToDate = false;
next();
});
和
UserSchema.pre('save', function (next) {
if (!this.isModified()) {
return next();
}
if (this.crm.update === true) {
this.crm.isUpToDate = false;
}
next();
});
編輯:
感謝您的建設性註釋。
基本上,它看起來沒有太大的差異(如上所述,它可以忽略不計)。感謝這個測試速度很快的工具http://jsperf.com/,我從來沒有聽說過它。
對於那些想知道代碼的人來說,首先我在原始文章中做了一個明顯的錯誤,然後當每個人都試圖向我指出我哭的時候,這可能是大家低估的原因。
下面是我在做什麼:
我必須先預存貓鼬中間件掛鉤(對於蒙戈數據庫),其中鉤子獲取運行的每一個文件保存時間。在保存時我檢查文檔是否已更新。如果是這樣,我將crmIsUpToDate
設置爲false。當cron作業獲取時,crmIsUpToDate
將被設置爲true。這個鉤子可以在cron作業到達文檔之前運行多次。
我不認爲這是問題所有必要的,因爲問題是如果做比較===
和做任務=
之間是有區別的。我甚至不應該把代碼放在上面,因爲它真的減損了主要問題。
1)任何性能增益都可以忽略不計; 2)http://jsperf.com –
這兩個例子不會做你知道的同樣的事情? – adeneo
即使有,是否有關?它們不執行相同的功能,因此不能可靠地進行基準測試。 – War10ck