繁体   English   中英

JavaScript 自定义 Function 定义为变量,声明应该是'var'还是'let'还是'const'?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM