![](/img/trans.png)
[英]Javascript: Should an argument passed to a function be defined as 'let', 'const' or 'var'?
[英]JavaScript Custom Function defined as a Variable, Should the Declaration be a 'var' or 'let' or 'const'?
我有 code-smell 建议在 function 以下添加声明。
将“let”、“const”或“var”关键字添加到“nullToEmpty”的声明中,使其显式化。
nullToEmpty = function (obj) {
if(typeof obj == 'undefined'){
return null;
}else{
return JSON.parse( JSON.stringify(obj).replace(/:null/gi, ':""') );
}
};
我想知道这种类型的 function 最合适的声明类型是什么,我应该使用const吗?
const nullToEmpty = function (obj) {
if(typeof obj == 'undefined'){
return null;
}else{
return JSON.parse( JSON.stringify(obj).replace(/:null/gi, ':""') );
}
};
var
是声明变量的“旧方法”——它可以重新声明,如果在 function 中声明,则它的 scope 是本地的(仅存在于当前的 function 中),否则是全局的。 它在某些情况下可能有用,但不再推荐,因为如果不谨慎使用全局 scope 可能会导致一些不良影响。
let
是一个较新的声明,其行为与var
几乎相同,但 scope 始终是本地的。
const
也始终是本地的,但不同之处在于它不能重新声明。 不过,这有时有点误导,因为“你不能重新声明”并不意味着“你不能改变它”。
这对于原始值(字符串、数字等)按预期工作,但不适用于对象、arrays 或函数。
这是无效的代码:
const primitive = 1;
primitive = 2;
这是有效的:
const array = [1, 2, 3];
array.push(4);
所以,综上所述:是的,我会在那种情况下使用const
。 您的 function 声明不会更改,也不需要是全局 scope。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.