javascript - 由于 number 是原始类型,为什么在重新分配给另一个变量时会更改其值?
问题描述
let age = 21;
let newAge = age++;
let newerAge = ++age;
let name = "basic";
let name2 = name.toUpperCase();
let name3 = name + "why";
console.log(age);
console.log(newAge);
console.log(newerAge);
console.log(age);
console.log(name);
console.log(name2);
console.log(name3);
console.log(name);
在这里,newAge 和 newerAge 的变化改变了 age 的值。但从。我的理解是,age(Number) 是一种原始类型,其值不应发生变化。但是,字符串按我的预期工作。name2 和 name3 的变化并没有影响 name 的值。帮助我理解,谢谢
解决方案
该数字21
是一个原始值,但它不会改变。
age
是一个变量,并且确实获得了++
操作员分配的新值。相当于写
let age = 21;
let newAge = age; age = age + 1;
let newerAge = (age = age + 1); // newerAge = (age += 1)
如果您不想改变age
变量,请不要使用++
运算符,而是编写例如
let age = 21;
let newAge = age + 1;
let newerAge = 1 + age;
要了解++
详细信息,另请参阅JavaScript 中的 ++someVariable 与 someVariable++。对于初学者来说非常混乱,因此建议不要在作业中使用它。
推荐阅读
- date - 在 Tableau 中按周分组
- html - 如何让 CSS flex 项目定位到上面的空间中?
- c# - 代码在 c# 中使用 Visual Studio 代码意外工作
- javascript - $subtract 不适用于 mongodb 中的 $set
- flutter - 颤振添加到列表
由于类型问题而崩溃 - antlr - R 语言:原始字符串的语法
- android - Arduino BLE蓝牙连接状态问题
- typescript - 如何在 TypeScript 中将联合类型混合到部分类型中?
- javascript - 这个 handleChange 方法在做什么?
- python - “TypeError:drop_duplicates() 在 PANDAS 中有一个意外的关键字参数 'ignore_index'”