JavaScript return 语句中的赋值
JavaScript assignment in return statement
我遇到过这样一段 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
,所以没有
功能性区别;
return param = 10;
return 10;
而 benchmarking the code,返回赋值会减慢代码速度; 100% 对比 99.46%.
我能想象开发人员选择此选项的唯一原因是让更多开发人员知道该函数正在返回一个新值 param
。
因此,开发人员可以看到函数正在使用新的 10
值覆盖 param
变量,而不是寻找函数调用。
我遇到过这样一段 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
,所以没有
功能性区别;
return param = 10;
return 10;
而 benchmarking the code,返回赋值会减慢代码速度; 100% 对比 99.46%.
我能想象开发人员选择此选项的唯一原因是让更多开发人员知道该函数正在返回一个新值 param
。
因此,开发人员可以看到函数正在使用新的 10
值覆盖 param
变量,而不是寻找函数调用。