javascript变量指向一个值是否正确?

javascript变量指向一个值是否正确?,javascript,variables,reference,Javascript,Variables,Reference,我听说JavaScript实际上并不像其他语言那样“指向”内存中的值(或对象,因为JS中的一切都是对象)。相反,JS变量引用内存中的其他值/对象。这是真的吗?指向和引用之间的语义区别是什么 变量名 JavaScript变量名用作持有变量值的对象的属性名键,例如代码范围内的函数对象或全局对象本身。因此,变量名访问变量值和数据类型的对象属性实现 在这个模型下,是的,JavaScript值不“指向”任何东西,它们是保存变量值的对象的属性名 数据类型 所有东西都是脚本中的对象吗?否。Javascript

我听说JavaScript实际上并不像其他语言那样“指向”内存中的值(或对象,因为JS中的一切都是对象)。相反,JS变量引用内存中的其他值/对象。这是真的吗?指向和引用之间的语义区别是什么

变量名 JavaScript变量名用作持有变量值的对象的属性名键,例如代码范围内的函数对象或全局对象本身。因此,变量名访问变量值和数据类型的对象属性实现

在这个模型下,是的,JavaScript值不“指向”任何东西,它们是保存变量值的对象的属性名

数据类型 所有东西都是脚本中的对象吗?否。Javascript包含基本数据类型,如“number”、“boolean”、“null”等,这些数据类型可以由内存中有限数量的八位字节表示,一个基本数据类型“string”可以使用可变内存量,一个复杂数据类型“object”也可以使用可变内存量。每个数据类型在对象属性中的保存和调用方式取决于实现,不在本答案的范围内

引用、指针和JavaScript 根据注释中链接的问题,指针是使用内存地址的一种特殊类型的引用。更一般地说,“引用”包括用于访问另一个值的任何值,可以包括内存地址、表索引或用于访问某个内容的键

对象数据类型。 为了完整性

对象数据类型实际上是一种引用数据类型,包含Javascript引擎用来访问对象所持有数据的某种引用。同一对象引用的每个等值副本都访问相同的底层对象数据结构


因此,对作为参数传递给函数的对象的属性所做的更改在返回时保持不变,如果多个变量设置为相同的对象值,则每个变量访问相同的对象属性集。

您不能对引用变量执行指针算术。“与其他语言一样”-各种其他语言都有“引用”而不是“指针”。甚至像
Number
String
这样的基本类型也是对象。它们的内部表示方式可能与其他类型的对象不同,但它们仍然是对象。(它们有属性、原型等。)
Number
String
对象是基本数据类型的包装器。但是,如果将这样的基元值用作对象,则在操作期间,基元类型将转换为其包装器对象的实例,而不再是。比较
var n=1后
n.x
的值;n、 x=“x”
带有
var n=新编号(1);n、 例如,x=“x”
(两者都不会抛出错误)@雷蒙德:有物体,也有物体。