Alo*_*dal 4 javascript computer-science
我刚刚阅读JavaScript: David Flanagan 的权威指南.我真的很享受,我很高兴我的第一本Javascript书就是这本书.:)
但是,我对这一段(3.7不可变原始值和可变对象引用)没有多大意义:
JavaScript在原始值(
undefined,null布尔值,数字和字符串)和对象(包括数组和函数)之间存在根本区别.基元是不可变的:没有办法改变(或"改变")原始值.对于数字和布尔值来说,这是显而易见的 - 改变数字的值甚至没有意义.然而,字符串并不那么明显.由于字符串就像字符数组,您可能希望能够在任何指定的索引处更改字符.
可能由于缺乏CS背景(自学成才和所有......),我只是错过了一些东西,但有人能帮我解释一下吗?
特别是我所提出的部分强调:为什么改变数字的价值是没有意义的?
我的想法到目前为止:
3 == 4)确实没有意义,但是这样的解释在下一句中失败了:这样的操作对字符串没有任何意义而不是数字......?你是对的,改变一个字符串文字的值是没有意义的- 这实际上是他所说的; 他只是说,它可能不会像明显的3 == 4情况下,因为你可以在一个字符串引用单个字符(然后可能会认为你可以通过改变特定字符更改字符串).
考虑这个例子:
var s = 'hello world';
s[0] = 'H';
Run Code Online (Sandbox Code Playgroud)
直观地说,这看起来好像会把这个词大写,但字符串是不可变的,所以不会起作用.
检查输出s我们仍然看到:s > 'hello world'
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |