我正在努力思考基本编程概念的正确术语。
我们将变量/概念称为对变量进行多次引用以轻松维护值或确保值是一致的?
示例:
var strAnimal = 'Fox';
console.log('the quick brown' + strAnimal + 'jumps over the lazy dog')
console.log('A man screaming is not a dancing.' + strAnimal + 'Life is not a spectacle.')
console.log('And maybe... you are a little' + strAnimal + 'with no wings, and no feathers')
我一直认为它是一个常量变量,但我不认为这是正确的。
答案 0 :(得分:1)
我一直认为这是一个常数变量
这实际上是矛盾的。 "变量"意味着"不是常数"和"常数"意思是“不变”"。我怀疑你正在考虑不变性。
在JavaScript中,var strAnimal = 'Fox';
可以这样解释:
strAnimal
的变量 字符串(与所有原始值一样)在此语言中是不可变的,这意味着您无法改变'Fox'
的完整性。
var str = 'bar';
str.split(); // ["bar"]
str.toUpperCase(); // BAR
str.replace('r', 'z'); // baz
console.log(str); // The original string has not changed...

相反,对象可变。看看数组会发生什么:
var arr = ['foo', 'bar', 'baz'];
arr.pop();
arr.shift();
arr.unshift('quux');
arr.push('corge');
console.log(arr); // The original array has changed...

不要认为常量是不可变的,因为即使在ES6中,常量也不是不可变的。他们只是阻止重新分配。看看这个例子:
const obj = {};
obj.foo = 'Foo';
obj.bar = 'Bar';
console.log(obj); // The original object has changed...
obj = 'Baz'; // TypeError

要在这种情况下拥有不可变常量,您应该使用Object.freeze()
:
const obj = {};
Object.freeze(obj);
obj.foo = 'Foo';
obj.bar = 'Bar';
console.log(obj); // The original object has not changed...

答案 1 :(得分:0)
您可以通过直接设置变量值或让函数对其进行操作来更改变量的值。但是你无法改变常数的值。