상세 컨텐츠

본문 제목

JavaScript - 매개변수 타입에 따른 원본 데이터 영향

개발/JavaScript

by 뉴에이스 2018. 11. 29. 13:41

본문

함수의 매개변수 타입이 기본형인 경우 원본 데이터에 영향이 없다.

소스
"use strict";
var i = 100; // 글로벌 변수

console.log("i : ", i);

function fn(i) {
  // var i 이 생략된 형태로, 함수내에서 선언된 변수 i 이다.
  i = i + 100;
  console.log("fn i : ", i);
}

// 넘겨준 매개변수가 기본형으로 원본 데이터에 영향이 없다.
fn(i); // 글로벌변수 i
console.log("글로벌 i : ", i);

결과
i :  100
fn i :  200
글로벌 i :  100

매개변수에 객체 타입이 넘어온 경우 원본 데이터에 영향을 끼친다.

소스
"use strict"
var arr = [10, 20, 30];

console.log("arr.length : ", arr.length);

function fn(arr) {
    // 넘겨받은 객체(지역변수)에 arr에 대한 push
    arr.push(100);
}

// 지역변수를 매개변수로 넘겨줌
fn(arr);
console.log("arr.length : ", arr.length);

결과
arr.length :  3
arr.length :  4

'개발 > JavaScript' 카테고리의 다른 글

JavaScript - setTimeout과 setInterval  (0) 2018.11.29
JavaScript - 즉시실행 함수  (0) 2018.11.29
JavaScript - 콜백함수  (0) 2018.11.29
JavaScript - 내장함수  (0) 2018.11.29
JavaScript - 글로벌 변수와 로컬 변수  (0) 2018.11.28

관련글 더보기

댓글 영역