>웹 프론트엔드 >JS 튜토리얼 >JavaScript는 참조 또는 값으로 변수를 전달합니까?

JavaScript는 참조 또는 값으로 변수를 전달합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-13 15:12:12700검색

Does JavaScript Pass Variables by Reference or by Value?

JavaScript에서 참조로 변수 전달

루프 내의 변수에 대해 여러 작업을 수행할 때 JavaScript가 변수 전달을 처리하는 방법을 이해하는 것이 중요합니다. JavaScript는 다른 프로그래밍 언어와 달리 참조 전달을 지원하지 않습니다. 그러나 객체를 참조하면 함수 내에서 해당 내용을 수정할 수 있습니다.

function alterObject(obj) {
  obj.foo = "goodbye";
}

var myObj = { foo: "hello world" };

alterObject(myObj);

alert(myObj.foo); // "goodbye"

배열에 대한 반복도 가능하므로 각 셀을 수정할 수 있습니다.

var arr = [1, 2, 3];

for (var i = 0; i < arr.length; i++) {
  arr[i] = arr[i] + 1;
}

참고할 가치가 있습니다. 진정한 참조에 의한 전달에는 호출 컨텍스트에서 값을 수정하는 기능이 포함되지만 JavaScript에서는 그렇지 않습니다. support.

function swap(a, b) {
  var tmp = a;
  a = b;
  b = tmp;
}

var x = 1, y = 2;
swap(x, y);

alert("x is " + x + ", y is " + y); // "x is 1, y is 2"

진정한 참조별 전달을 허용하는 C와 달리 JavaScript는 객체에 대한 참조 전달만 지원합니다. 함수 내의 객체 내용 수정은 가능하지만, 참조 자체는 수정할 수 없습니다.

위 내용은 JavaScript는 참조 또는 값으로 변수를 전달합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.