为什么函数声明中的常量声明不会引发错误?

时间:2019-11-25 08:37:10

标签: javascript function constants declaration redeclaration

我正在从MDN学习,所以这里是这样的代码,这让我很惊讶为什么AttributeError: 'Spider' object has no attribute 'i'行中的choice变量在这里用作常量。我相信const choice = select.value;可能会更改,并且常量在赋值后无法更改...或变量的重新声明会导致错误... 每次更改选择值,它都会调用.value函数,对吗? 那么,那里发生了什么,有人可以解释一下我吗?

setWeather

还有来自MDN网站https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/conditionals

的链接

2 个答案:

答案 0 :(得分:0)

请参见const变量的范围,其寿命仅在函数运行时存在,并在函数完成时结束,因此,当再次调用该函数时,它是一个已分配值的新变量。您必须了解变量的范围。

答案 1 :(得分:0)

const声明创建对值的只读引用。这并不意味着它拥有的值是不可变的,只是不能重新分配变量标识符。例如,在内容是对象的情况下,这意味着可以更改对象的内容(例如其属性)(有关更多详细信息,请访问:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const)。

请在下面的示例中找到,就像“ const select”一样,在这里我声明了一个类型为object的名为“ car”的const变量,并且可以更改“ car”对象的属性“ model”:

const car = {type:"Fiat", model:"500", color:"white"};
  car.model= "EX60";
  console.log(car);