[TIL] JavaScript - Switch, 함수

이지예·2022년 5월 20일
0

JavaScript

목록 보기
12/24

Switch

  • 복수의 if 조건문은 switch 문으로 바꿀 수 있습니다.

  • default 문은 있어도 되고 없어도 됩니다.

  • case문 안에 break 문이 없으면 조건에 부합하는 case부터 switch문의 끝까지 모든 case문과 default문이 실행됩니다.

  • 코드가 같은 case문은 묶을 수 있다.

switch(3){
    case 4:
        alert('four');
        break;
    case 3:
    case 5:
        alert('three and five');
        break;
}

case 3에서 break이 없으므로 break문을 만날 때까지 코드가 계속 실행된다. 이는 case문끼리 묶인 것처럼 동작한다.

  • case문의 값의 형과 비교하려는 값의 형이 같아야 case문이 실행된다.
    같지 않으면 case문이 모두 실행되지 않고 switch문이 끝나거나, default문이 있다면 default문만 실행된다.

함수

함수의 주요 용도

중복 코드 피하기

함수 선언 방법

function 함수이름(매개변수) {
    ...
}

외부 변수

함수에서 외부 변수에 접근이 가능하고, 수정도 할 수 있다.
외부 변수는 함수 내 변수인 지역 변수가 없는 경우에만 사용할 수 있다.
함수 내부에 외부 변수와 '(다른 언어와 다른 점)동일한 이름을 가진 변수'가 선언된다면, 외부 변수는 내부 변수에 가려지게 되어
함수 내부에서 변수에 일어나는 일이 외부 변수에 영향을 주지 않는다.

매개 변수

  • 전역 변수를 함수에 전달하여 매개변수로서 쓸 경우 매개변수를 변경하더라도, 함수를 빠져나온 후의 전역 변수는 함수 이전과 다르지 않다. 함수는 전역 변수의 복사된 값을 매개변수로 사용하기 때문이다.

  • 매개 변수에 값을 전달하지 않으면 에러가 뜨지 않고, 값이 undefined가 된다.(다른 언어와 다른 점)

  • 값을 전달하지 않아도 undefined가 되지 않게 하려면 기본값을 설정해주면 된다.
    ex) 매개변수=기본값

    이때 기본값에 함수를 넣을 수도 있다. 매개변수에 전달되는 값이 없는 경우 기본값으로 설정해놓은 함수를 실행하고 원래 실행하고자 했던 함수가 실행되게 된다.(다른 언어와 다른 점)

  • 매개변수 기본값을 설정하는 다른 방법으로는 함수 내부에서 매개변수를 undefined와 비교해서 대입해는 방법도 있다.
    if문을 쓰거나 논리 연산자 ||를 사용하여 확인할 수 있다.

function showMessage(text) {
  text = text || '빈 문자열';
}
  • 혹은 falsy로 평가되는 값(0,null,undefined)을 ??로 처리할 수 있다.

반환 값

return값이 없거나 return 지시자만 있는 함수는 undefined를 반환한다.
return과 값 사이에 줄바꿈이 들어가면 안된다. js는 한 줄씩 실행되기 때문에 return 지시자만 있다고 판단해서 undefined를 반환하고, 원래 반환하고자 했던 값은 무시되기 때문이다. 반환 값을 여러 줄에 걸쳐 작성하고 싶다면 괄호를 사용하여 여는 괄호를 return 지시자와 같은 줄에 써주면 된다.


아직 해결하지 못한 부분 :

function showPrimes(n) {
  nextPrime: for (let i = 2; i < n; i++) {

    for (let j = 2; j < i; j++) {
      if (i % j == 0) continue nextPrime;
    }

    alert( i ); // 소수
  }
}

여기서 nextPrime은 무슨 기능인지는 알겠는데 이름이 뭔지 알아봐야겠다.

0개의 댓글