【发布时间】:2020-12-18 14:45:00
【问题描述】:
我遇到过一段类似这样的 JS 代码:
let myFn = function(param) {
if (param > 5)
return param = 10; // <-- why?
return param;
}
此代码有效,如果有人问,我不会假设。但是,我认为仅以常规方式返回值没有区别:
let p1 = 34;
let p2 = 5;
myFn(p1); // returns 10
myFn(p2); // returns 5
console.log(p1); // 34
console.log(p2); // 5
所以,问题是——这有什么原因吗?
【问题讨论】:
-
没有理由这样做。代码的作者可能很困惑,或者这可能是已被删除的不同代码的残余。
-
代码有效,因为表达式
param = 10的结果是10。除此之外,它并没有做太多。 developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/… -
短版使用三元:
let myFn = param => param > 5 ? 10 : param; -
我见过人们做这种事情,我个人一直不鼓励它过于迟钝,但它会起作用,它会让一些人觉得很聪明
标签: javascript return variable-assignment