【发布时间】:2021-10-23 10:11:15
【问题描述】:
我有代码味道的建议,可以在下面的函数中添加声明。
在“nullToEmpty”的声明中添加“let”、“const”或“var”关键字,使其明确。
nullToEmpty = function (obj) {
if(typeof obj == 'undefined'){
return null;
}else{
return JSON.parse( JSON.stringify(obj).replace(/:null/gi, ':""') );
}
};
我想知道对于这种类型的函数最合适的声明类型是什么,我应该使用 常量 ?
const nullToEmpty = function (obj) {
if(typeof obj == 'undefined'){
return null;
}else{
return JSON.parse( JSON.stringify(obj).replace(/:null/gi, ':""') );
}
};
【问题讨论】:
-
如果您正在编译它以在旧浏览器中使用,请使用 const 作为变量永远不会改变。当某些东西不应该改变时,总是使用 const 。 let 什么时候会或可以改变。除非您不编译,否则不再使用 var。
-
在我自己的js编码规则中,我总是使用
var作为全局变量,let作为局部变量,const作为常量变量,如c++中的DEFINE MACRO .所以在这种情况下,我将使用var。但是根据stackoverflow.com/a/33040926/15487427,函数声明的所有三种类型——var、let、const——在某些情况下都有异常,声明为function nullToEmpty(obj)将是最好的一种。这是我的小意见:) -
const似乎很好,如果您不打算在同一函数或顶级范围内拥有另一个nullToEmpty。不过,就个人而言,我只会使用常规的function,然后您不必担心在定义之前调用它。此外,您可以像if(obj === undefined)那样做,因为obj是一个参数。不过,您应该知道null不是undefined。typeof null给你'object'。 -
附注我建议在函数中使用
if (!obj)而不是if (typeof obj == 'undefined')。它适用于所有类型的边界检查(null、undefined等),代码最简单。 -
写一个
function nullToEmpty(obj) {…}声明
标签: javascript