JavaScript-JavaScript原始值为什么不能改变

UI设计界面 UI设计界面 主题:1059 回复:2190

JavaScript-JavaScript原始值为什么不能改变

清晨说ぺ晚安 发布于 2017-06-04 字数 250 浏览 1229 回复 4

JavaScript权威指南的47页讲”原始值是不可更改的“。。什么意思?
原始值就是undefined null number string boolean等为什么不能更改呢?
下面这样:
var i = 10;
alert(i);

i = 30;
alert(i);
确实变了呀、、

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(4

偏爱自由 2017-10-26 4 楼

这是指“10”和“30”不变,而不是"i"不变

瑾兮 2017-10-06 3 楼

*变量赋值时,ECMAScript 的解释程序必须判断该值是原始类型,还是引用类型。要实现这一点,解释程序则需尝试判断该值是否为 ECMAScript 的原始类型之一,即 Undefined、Null、Boolean、Number 和 String 型。由于这些原始类型占据的空间是固定的,所以可将他们存储在较小的内存区域 - 栈中。这样存储便于迅速查寻变量的值。

晚风撩人 2017-09-05 2 楼

是指对undefined null number string boolean类型将其作为对象操作时,调用方法不会对值本身有影响。

var s = "hello";
s.toUpperCase();
alert(s === "hello"); //true

浮生未歇 2017-08-19 1 楼

我今天也看到了这本书的这个地方

在JS中,字符串是由多个字符组成的有序序列,你可以访问这个序列里的每一个值,但不能更改任何一个值。比如Allo 举的例子toUpperCase() 是没有改变字符串本身内容的。

同样,数字也是一样的道理,JS没有提供任何改变数字本身内容的方法。