Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果我不根据空变量的数据类型将其设置为null,是否会导致问题?_Javascript - Fatal编程技术网

Javascript 如果我不根据空变量的数据类型将其设置为null,是否会导致问题?

Javascript 如果我不根据空变量的数据类型将其设置为null,是否会导致问题?,javascript,Javascript,使用占位符变量(稍后将用数据库中的数据填充)显然可以用两种方法来完成。唯一的问题是,JavaScript对待null是否与对待没有元素的数组或没有属性的对象不同 JavaScript是否处理过: let userdetails = null 不同于: let userdetails = {} //or let userdetails = [] 这几乎是您的选择,但我将使用undefined而不是null,因为它们毕竟是未定义的,在测试过程中不会让我感到困惑。但是null也没有问题。这基本上是

使用占位符变量(稍后将用数据库中的数据填充)显然可以用两种方法来完成。唯一的问题是,JavaScript对待null是否与对待没有元素的数组或没有属性的对象不同

JavaScript是否处理过:

let userdetails = null
不同于:

let userdetails = {}
//or
let userdetails = []

这几乎是您的选择,但我将使用undefined而不是null,因为它们毕竟是未定义的,在测试过程中不会让我感到困惑。但是null也没有问题。

这基本上是您的选择,但我会选择undefined而不是null,因为它们毕竟是未定义的,在测试期间不会让我感到困惑。但是null也不会有问题。

如果您尝试使用属性或数组索引,但没有将其初始化为正确的类型,则会出现错误。如果您在填充变量之前不打算使用该变量,你根本不需要给它一个初始值。除了@Barmar所说的,初始化你想要的数据类型也很好,这在大规模系统中也很好,因为你不需要每次都返回变量来检查它们的用途。如果你返回的数据有可能是空的,您需要一种区分未加载和加载但为空的方法,那么null是更好的选择。最佳实践是将变量设置为预期值。这是一些原因:1。逻辑2。不要让任何在你之后的开发者感到困惑。如果要使用specfic示例的属性,您将得到一个错误:var test=null;测试。推送“你好世界”;console.logtest;//未捕获的TypeError:无法读取Null的属性“push”。如果在未将其初始化为正确类型的情况下尝试使用属性或数组索引,则会出现错误。如果在填充变量之前不打算使用该变量,你根本不需要给它一个初始值。除了@Barmar所说的,初始化你想要的数据类型也很好,这在大规模系统中也很好,因为你不需要每次都返回变量来检查它们的用途。如果你返回的数据有可能是空的,您需要一种区分未加载和加载但为空的方法,那么null是更好的选择。最佳实践是将变量设置为预期值。这是一些原因:1。逻辑2。不要让任何在你之后的开发者感到困惑。如果要使用specfic示例的属性,您将得到一个错误:var test=null;测试。推送“你好世界”;console.logtest;//Uncaught TypeError:无法读取nullundefined的属性“push”,如果您只声明let userdetails,则默认值为Undefined;如果只声明let userdetails,则默认值为undefined;