Javascript 为什么b的值打印为23而不是46?

Javascript 为什么b的值打印为23而不是46?,javascript,Javascript,我的代码: var a = 23; var b = a; a = 46; console.log(a); console.log(b); 为什么b的值打印为23而不是46 输出: var a = 23; var b = a; a = 46; console.log(a); console.log(b); a=46,b=23,在Javascript中,只有对象/数组通过引用传递,而其他对象/数组通过值传递。因为a和b都是整数值,所以它们是按值传递的。因为你给出的是a的值,也就是23。然后你被重

我的代码:

var a = 23;
var b = a;
a = 46;
console.log(a);
console.log(b);
为什么b的值打印为23而不是46

输出:

var a = 23;
var b = a;
a = 46;
console.log(a);
console.log(b);

a=46,b=23,

在Javascript中,只有对象/数组通过引用传递,而其他对象/数组通过值传递。因为a和b都是整数值,所以它们是按值传递的。

因为你给出的是a的值,也就是23。然后你被重新分配到46岁。

看看这个。原语通过值传递,对象通过引用传递。由于a和b是基本体,它们通过值传递。当a发生变化时,不会反映在b中。

var b=a时执行时,
b
不“引用”到
a
。此时,它变成一个值为
a
值的数字


但是,如果使用对象,则属性将使用
a
引用,而不是其值:

a = { value: 23 };
b = a;
a.value = 46;

console.log(b);

在代码中,首先用
<23
的值初始化
,然后将
的值赋值给

       var a = 23;
       var b = a;
        a = 46;
     console.log(a);
     console.log(b);
然后更新
a
的值,但不将其分配给
b

与Java脚本中一样,只有对象/数组通过引用传递,其他对象/数组通过值传递。当
a
b
保存整数值时,它们按值传递


因此更新
a
的值不会导致
b
值的变化;如果在更新a的值后将值赋值给b,则会导致
a和
b的值都显示为
46
,赋值运算符意味着您将右侧的值赋值给左侧的值,因此通过此语句var b=a;b变为23,一旦您更改a,由于js的词法范围,它对b的值没有影响。

a
b
是不同的变量,分配了不同的值。另请参阅和这些相关问题:,。可能重复