JavaScript 中的基元

编程语言中最简单的元素称为原语。
它们因语言而异,但通常是最基本的不可变值。

以下 JavaScript 原始数据类型按值传递:字符串、布尔值、数字、空值、未定义。

原语按其值复制意味着通过其值访问该变量。

原语是不可变的,这意味着它们的值不能改变但可以重新分配。

引用类型(对象)

JavaScript 中的对象属于引用类型。

与基元不同,参考值的大小是动态的;因此,JavaScript 将引用值存储在堆上。

对象是可以引用任何数据类型的属性集合,包括对象和原始值。
我们可以使用带有属性列表的图形括号 {...} 创建对象。

通常,对象几乎贯穿 JavaScript 的任何方面。
因此,它是首先要学习的东西之一。

按值传递

在按值传递中,可以通过直接将变量的值作为参数传递来调用函数。

如果在函数内部更改参数,则不会影响从函数外部传递的变量。

由于 JavaScript 始终是按值传递,因此更改变量的值不会更改底层原语(数字或者字符串)。

让我们在下面的示例中演示它:

function callByValue(var1, var2) {
  console.log("Inside Call");
  var1 = 10;
  var2 = 20;
  console.log("var1 =" + var1 + "  var2 =" + var2);
}
let var1 = 100;
let var2 = 200;
console.log("Before Call");
console.log("var1 =" + var1 + "  var2 =" + var2);
callByValue(var1, var2);
console.log("After Call");
console.log("var1 =" + var1 + "  var2 =" + var2);

输出如下:

Before Call by Value Method
var1 =100 var2 =200
Inside Call by Value Method
var1 =10 var2 =20
After Call by Value Method
var1 =100 var2 =200

但如果变量引用包含数组的对象,则该值是对该对象的引用。

按值传递是一种更安全的编程方式,它可以防止程序员覆盖函数内部的变量。
JavaScript 和其他现代编程语言在涉及原语时使用它。

JavaScript 是按引用传递还是按值传递语言?

在这篇文章中,我们将研究 JavaScript 中的引用传递和值传递。

JavaScript 被认为是按值传递的语言,但是当变量引用一个对象时,该值成为该对象的引用。

现在,让我们看看什么是值传递和引用传递。

按引用传递

在传递引用中,可以通过直接传递变量的引用/地址作为参数来调用函数。
如果在函数内部更改参数,则会影响从函数外部传递的变量。

在 JavaScript 中,对象和数组是通过引用传递的。

下面是一个例子:

function callByReference(obj) {
  console.log("Inside Call by Reference");
  obj.a = 100;
  console.log(obj);
}
let obj = {
  a: 1
};
console.log("Before Call by Reference");
console.log(obj);
callByReference(obj);
console.log("After Call by Reference");
console.log(obj);

输出将是:

Before Call by Reference Method
{a: 1}
Inside Call by Reference Method
{a: 100}
After Call by Reference Method
{a: 100}
日期:2020-06-02 22:16:27 来源:oir作者:oir