Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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中声明常量变量而不进行初始化_Javascript_Constants - Fatal编程技术网

在javascript中声明常量变量而不进行初始化

在javascript中声明常量变量而不进行初始化,javascript,constants,Javascript,Constants,根据我的理解,在javascript中,我们可以用let和var关键字声明变量,然后为其赋值 var a; a = 5; 但是,当我使用const关键字尝试相同的方法时,它不起作用 const a; Uncaught SyntaxError: Missing initializer in const declaration 我理解我的问题有一个基本矛盾,因为const关键字用于存储不可变变量。因此,良好的编码实践可能要求在声明时对其进行初始化 但是,我希望将全局值存储在由API获取的常量变量

根据我的理解,在javascript中,我们可以用let和var关键字声明变量,然后为其赋值

var a;
a = 5;
但是,当我使用const关键字尝试相同的方法时,它不起作用

const a;
Uncaught SyntaxError: Missing initializer in const declaration
我理解我的问题有一个基本矛盾,因为const关键字用于存储不可变变量。因此,良好的编码实践可能要求在声明时对其进行初始化


但是,我希望将全局值存储在由API获取的常量变量中。所以,我想知道是否有一种方法可以在javascript中为预先声明的常量变量赋值?

有两种方法可以创建一个具有默认值的常量,一个具有可变属性的对象,两个数组,如下面所示

const a = {};
cosnt b = [];

const
应用于变量,而不是值。您必须初始化它们,因为以后无法分配它们——这是它们唯一的区别。不能只分配一次变量,而不能重新分配

如果结果是一个对象,则可以声明该常量以保存一个空对象,然后使用
object.assign()
用API响应填充它

const result = {};
fetch(...).then(response => response.json()).then(data => Object.assign(result, data));

您不能这样做,至少在运行时不能这样做。我建议您考虑使用Type Script,它具有<代码> Read Ont/Cuff>修饰符,这将有助于保护您的变量在编译时< <强> > >

< P>我认为您不能这样做。在JavaScript中,声明常量变量时必须为其赋值:

不正确

const PI;
PI = 3.14159265359;
正确的

const PI = 3.14159265359;
为了获得更多的参考,你可以看看这个,这会给你一个更好的解释


这有什么意义?不能重新分配
常量
变量。如果你声明它时没有值,你以后怎么给它一个值呢?你可能会想
declare
const
并不意味着值是不可变的,它意味着变量是不可变的。我同意你的观点,这可能不是正确的做法。然而,我想知道是否有一种聪明的方法可以将api在vanilla javascript中获取的值存储为常量全局变量。解决这个问题的正确方法是将响应的承诺存储在全局常量中。更改为“填充”。并且考虑到数组是一个对象……是的,没有什么可遗憾的。