根据我的理解,在javascript中,我们可以使用let和var关键字声明变量,然后再为其分配值。
var a;
a = 5;
但是,当我使用const关键字尝试相同的方法时,它不起作用。
const a;
Uncaught SyntaxError: Missing initializer in const declaration
我了解我的问题有一个基本矛盾,因为const关键字用于存储不可变变量。因此,良好的编码习惯可能要求在声明时对其进行初始化。
但是,我想将全局值存储在API提取的const变量中。因此,我想知道是否有办法为javascript中的预声明const变量赋值?
答案 0 :(得分:2)
const
适用于变量,而不适用于值。您必须对其进行初始化,因为以后无法分配它们-这是它们唯一的区别。您不能拥有只能分配一次但不能重新分配的变量。
如果结果是一个对象,则可以声明该常量以容纳一个空对象,然后使用Object.assign()
将其与API响应一起填写。
const result = {};
fetch(...).then(response => response.json()).then(data => Object.assign(result, data));
答案 1 :(得分:0)
有两种方法可以创建具有默认值的const,如下面所示,可以创建1个具有可变属性的对象,2个数组。
const a = {};
cosnt b = [];
答案 2 :(得分:0)
您不能这样做,至少不能在运行时这样做。建议您考虑使用具有readonly
修饰符的TypeScript,该修饰符将帮助您防止变量在编译时被覆盖。在编译时。
答案 3 :(得分:0)
我认为您不能那样做。在JavaScript中,必须在声明const变量时为其赋值:
不正确
const PI;
PI = 3.14159265359;
正确
const PI = 3.14159265359;
有关更多参考,您可以查看一下,为您提供更好的解释