[JS] 함수를 매개 변수와 일반 변수로 받을 때 값이 다르게 변한다? 놀랍다 스코프

쿼카쿼카·2023년 2월 25일
0

코드

// 매개변수 없이 젼역값 변경
let a = 1;

function abc() {
  a = 2;
}

abc();

console.log(a) // 2

// 매개변수로 원시타입 변수 변경
let b = 1;

function plus(b) {
  b=2;
  console.log(b) // 2
}

plus(b);
console.log(b); // 1

// 매개변수로 참조타입변수 변경
const c = {1: 2, 3: 4}

add(c);

function add(c) {
	c[5] = 6;
  	console.log(c); // {1: 2, 3: 4, 5: 6}
}

console.log(c); // {1: 2, 3: 4, 5: 6}

함수의 매개변수로 받아 값을 변경할 때

  • scope에 대한 개념을 생각해야한다는데 내가 강의를 하나도 안 들을 때도 스코프 만큼은 이해하고 넘어갔다 생각했거든요?
  • 역시 비공부시즌 내가 제대로 들었을리가 없죠ㅎㅎㅎ
  • 매개변수로 아무리 전역변수를 받아 값을 변경한다해도 매개변수는 해당 함수 안에서만 적용되네?
  • 아래 plus함수를 보시면 b 값을 매개변수로 받아 변경해줬죠?
  • 함수 안에서는 2도 잘 찍히고 말 잘듣는가 싶더니
  • 함수탈출 하자마자 뒤통수 때리고 원래 전역변수 값으로 돌아가죠?
  • 만약 값을 바꾸고 싶다면 매개변수 없이 변경해주세용~~~

함수의 매개변수로 참조타입변수를 변경할 때

  • 이건 또 참조타입이잖아요?
  • 역시 참조타입은 원하는 대로 변해요! 개착해개착해 ㅎㅎㅎ 처음 배울 때나 어렵지 역시 갈 수록 너가 잘하네
profile
쿼카에요

0개의 댓글