条件运算符===
和赋值运算符=
之间的性能有什么区别吗?我正在猫鼬中编写一些预保存钩子中间件,我想知道以下之间是否存在很大的速度差异:
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/,我以前从未听说过它。
对于那些对代码感到疑惑的人,首先我在原始帖子中犯了一个明显的错误,然后当每个人试图向我指出它时我哭了,这可能是每个人都反对的原因。
这是我正在做的事情:
我有一个 mongoose 预保存中间件挂钩(用于 mongo 数据库),每次保存文档时都会运行该挂钩。在保存时,我检查文档是否已更新。如果是我将其设置crmIsUpToDate
为假。当crmIsUpToDate
cron 作业获得时,将设置为 true。在 cron 作业到达文档之前,可以多次运行此挂钩。
我不认为这对于这个问题来说是必要的,因为问题是进行比较===
和进行分配之间是否有区别=
。我什至不应该把代码放上去,因为它确实偏离了主要问题。