条件运算符===和赋值运算符=之间的性能是否存在差异?我正在用猫鼬写一些预保存的钩子中间件,我想知道是否有很大的速度差异:
UserSchema.pre('save', function (next) {
if (!this.isModified()) {
return next();
}
this.crm.isUpToDate = false;
next();
});
Run Code Online (Sandbox Code Playgroud)
和
UserSchema.pre('save', function (next) {
if (!this.isModified()) {
return next();
}
if (this.crm.update === true) {
this.crm.isUpToDate = false;
}
next();
});
Run Code Online (Sandbox Code Playgroud)
编辑:
感谢您的建设性意见.
基本上,它看起来并没有太大的性能差异(如上所述它可以忽略不计).感谢http://jsperf.com/测试速度的酷工具,我以前从未听说过它.
对于那些想知道代码的人,首先我在原帖中犯了一个明显的错误,然后当每个人都试图向我指出我哭了,这可能是每个人都投票的原因.
这是我在做的事情:
我有一个mongoose预保存中间件挂钩(用于mongo数据库),每次保存文档时都会运行挂钩.在保存时,我检查文档是否已更新.如果是我将其设置crmIsUpToDate为false.crmIsUpToDate当cron作业到达时,将设置为true.在cron作业到达文档之前,可以多次运行此挂钩.
我认为这不是问题的必要条件,因为问题在于进行比较===和做作业之间是否存在差异=.我甚至不应该把代码放上去,因为它确实减少了主要问题.