gpt4 book ai didi

javascript - 请解释为什么它 "doesn' t 甚至改变数字的值是有意义的”

转载 作者:搜寻专家 更新时间:2023-11-01 05:01:55 26 4
gpt4 key购买 nike

我正在阅读 JavaScript: The Definitive Guide大卫弗拉纳根。我真的很享受,我很高兴我的第一本 Javascript 书就是这本书。 :)

然而,我无法理解这一段(3.7 不可变原始值和可变对象引用资料):

There is a fundamental difference in JavaScript between primitive values (undefined, null, booleans, numbers, and strings) and objects (including arrays and functions). Primitives are immutable: there is no way to change (or “mutate”) a primitive value. This is obvious for numbers and booleans—it doesn’t even make sense to change the value of a number. It is not so obvious for strings, however. Since strings are like arrays of characters, you might expect to be able to alter the character at any specified index.

可能由于我缺乏 CS 背景(自学和所有......),我只是遗漏了一些东西,但是有人可以帮助我阐明它吗?

特别是我强调的部分:为什么更改数字的值没有意义?


到目前为止我的想法:

  • 也许他严格区分了(在其他语言中可以称为什么)的概念“变量”和“值”。那么OK,把3的值改成value确实没有意义的 4(因此 3 == 4),但在下一句中这样的解释失败了:这样的操作确实对字符串没有比对数字更有意义...?

最佳答案

你是对的,改变字符串文字的是没有意义的——这正是他所说的;他只是说它可能不像 3 == 4 情况那样显而易见,因为您可以引用字符串中的单个字符(然后可能认为您可以更改通过改变一个特定字符的字符串)。

考虑这个例子:

var s = 'hello world';
s[0] = 'H';

从直觉上看,这似乎会将单词大写,但字符串是不可变的,因此不会起作用

检查 s 的输出,我们仍然看到:s > 'hello world'

关于javascript - 请解释为什么它 "doesn' t 甚至改变数字的值是有意义的”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11851892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com