JavaScript

[JavaScript] 추상화(복합 할당 연산자, return, console, 옵셔널 파라미터)

sodait 2021. 6. 4. 22:10
코드를 더 간결하게 작성할 수 있는 방법

 

✨추상화(Abstraction)

복잡한 것들을 목적에 맞게 단순화하는 것

추상: 여러가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용

구체적인 정보들은 숨기고, 꼭 필요한 핵심만 뽑아내서 표현하는 방식
(원활한 소통을 위한 표현 방식들 중 하나)

 

👩‍💻프로그래밍에서 추상화

프로그래밍을 통해 어떤 프로그램을 만든다는 것은
1) 코드를 작성하는 자신과의 소통이 될 수도 있고,
2) 작성한 코드를 실행하는 컴퓨터와의 소통이 될 수도 있고,
3) 함께 코드를 작성하는 동료와의 소통이 될 수도 있고,
4) 내가 만든 프로그램을 사용하는 사용자와의 소통이 될 수도 있음

=> 프로그래밍을 할 때 추상화를 통한 코드를 작성하면 더 좋은 소통&표현이 될 수 있음
프로그래밍은 추상화의 연속이라고도 할 수 있다.

 

❔변수, 함수, 객체 등 -> 모두 프로그래밍의 추상화

변수: 값을 저장하는 것

함수: 명령들을 저장하는 것

함수 선언: 그 함수가 사용될 때 어떤 행동을 할지 정의만 하는 것
함수에서의 추상화 -> 복잡한 내용은 함수 내부에 숨기고, 핵심은 그 함수 이름에 드러내는 방식

 


파라미터(Parameter) 매개변수

함수를 호출할 때 소괄호 안에 입력하는 값

 

=> 함수 내에서 변수처럼 사용할 수 있음

함수 내부에서 파라미터를 변수처럼 사용하게 되면, 함수를 호출할 때 소괄호 안에 입력한 값이 파라미터에 전달되는 개념

 


💥복합 할당 연산자(Compound assignment operators)

// 복합 할당 연산자
x = x + 1;
x += 1;

x = x + 2;
x += 2;

x = x * 2;
x *= 2;

x = x - 3;
x -= 3;

x = x / 2;
x /= 2;

x = x % 7;
x %= 7;


// 증가 연산자
x = x + 1;
x += 1;
x++;

// 감소 연산자
x = x - 1;
x -= 1;
x--;

 


💥return 역할

1) 결과값 돌려주기
2) 함수 실행 중단하기(return키워드 나온 이후 함수 중단)

 

// Dead Code: 아무런 의미가 없음 (실행되지 않는 코드이므로 작성하지 않는 게 좋음)

결과

 

❓return과 console 차이

// console
function printSquare(x) {
  console.log(x * x); 
} 
printSquare(3); // 9 


// return
function getSquare(x) {
  return x * x; 
} 
console.log(getSquare(3)); // 9 


console.log(printSquare(3)); // 9, undefined 

// console.log(x * x) = 9, console.log(printSquare(3))의 리턴값 = undefined 
// 함수를 선언할 때 return문을 따로 작성하지 않으면 undefined를 리턴함

 


💥옵셔널 파라미터

필요에 따라 undefined가 아닌 다른 값이 자동으로 전달되게끔 파라미터에 기본값을 설정하는 방법 (값을 미리 할당)
(함수를 호출할 때 파라미터 값을 전달해도 되고, 생략해도 됨 -> 선택적으로 전달 받음)

function introduce(name, age, nationality = '한국') {
  console.log(`이름은 ${name}입니다.`);
  console.log(`나이는 ${age}살,`); 
  console.log(`국적은 ${nationality}입니다.`); 
} 


introduce('안나', 15, '미국'); // 값을 모두 전달한 경우
// 이름은 안나입니다.
// 나이는 15살,
// 국적은 미국입니다. 

 
introduce('김', 15); // 파라미터 값을 생략한 경우
// 이름은 김입니다.
// 나이는 15살,
// 국적은 한국입니다. 

=> 값을 전달한 경우, 전달한 값이 출력 / 값을 전달하지 않은 경우, 미리 할당한 값이 전달됨

 

※ 파라미터 위치 주의

ex) 옵셔널 파라미터가 중간에 있으면, 호출할 때 생략하려고 할 경우 순서가 밀려버림
=> 옵셔널 파라미터는 생성한 다음 반드시 가장 뒤쪽으로 선언해 줘야 함