자바스크립트 기초

본 포스팅은
<ZeroCho님의 인프런 - 웹 게임 개발 자바스크립트 >
강의를 들으면서 정리한 내용임을 알려드립니다.


  • "REPL"
    : READ EVALUATE PRINT LOOP

연산자 우선순위

  • 대입연산자인 =제일 마지막에 실행된다.
  • 소괄호()를 쓰면 연산자 우선순위를 바꿀 수 있다.(수학처럼)

함수

1
y = f(x) x**2 + x + 5
1
2
3
function (x, z) {
return x + z + 5;
}

()부분이 입력값,
return 부분이 출력값이라고 생각해도 된다.

1
2
3
4
5
4 + 7 + 3 + 5; // 19
8 + 1 + 3 + 5; // 17
10 + 3 + 3 + 5; // 21
13 + 4 + 3 + 5; // 25
12 + 4 + 3 + 5; // 24

바뀌는 부분만 첫째, 둘째로 넣고,
나머지 공통되는 부분인 +3 + 5를 써넣는다.

1
2
3
function 더하기(첫째, 둘째) {
return 첫째 + 둘째 + 3 + 5;
}
1
2
3
4
5
6
7
8
9
10
11
console.log("안녕하세요");
console.log("제로초님");
console.log("반가워요");

console.log("안녕하세요");
console.log("김성수님");
console.log("반가워요");

console.log("안녕하세요");
console.log("진호인님");
console.log("반가워요");
  • 이름 부분만 바뀌고 있다.
  • 불필요하게 코드를 반복하고 있다.
  • 반복되는 부분함수로 만들자.
1
2
3
4
5
function 인사(이름) {
console.log("안녕하세요");
console.log(이름 + "님");
console.log("반가워요");
}

이제 위 함수를 이용하여 처음에 총 9줄로 작성했던 코드를 3줄로 줄일 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
인사("제로초");
// 안녕하세요
// 제로초님
// 반가워요
인사("김성수");
// 안녕하세요
// 김성수님
// 반가워요
인사("진호인");
// 안녕하세요
// 진호인님
// 반가워요
1
2
3
함 수 야 놀 자
1 2 3 4 5 <-- 사람
0 1 2 3 4 <-- 컴퓨터(자바스크립트)

사람은 보통 1부터 세고,
자바스크립트에서는 0부터 센다.
cf) 파이썬같은 언어는 0이 아닌 1부터 센다.

1
2
3
4
5
6
"함수야놀자"[2];
//야
"함수야놀자"[0];
//함
"함수야놀자"[3];
//놀

조건문

if else문

1
2
3
4
5
6
7
if (true) {
("안녕");
} else {
("잘가");
}
// 조건문에 true가 들어있으므로
// 무조건 `안녕`이 나옴
1
2
3
4
5
6
7
8
let 변수 = false;
// 다른 코드
// 다른 코드
if (변수) {
("안녕");
} else {
("잘가");
}

시한 폭탄if ~ else문으로 짠다고 생각해보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
let 변수 = "펑";
변수 = "암호";

if (변수 === "펑") {
("펑펑");
} else {
("해제되었습니다.");
}

// 변수 값이 "펑"일 때는 "펑펑"이 나오지만,
// 변수에 "암호"라는 값이 대입되었기 때문에
// 실행흐름이 바뀌어서
// "해제되었습니다."가 나온다.

else if문을 이용한 예시

1
2
3
4
5
6
7
8
9
10
11
let 변수 = "사과";

if (변수 === "사과") {
("사과 좋아");
} else if (변수 === "오렌지") {
("오렌지 좋아");
} else if (변수 === "딸기") {
("딸기 좋아");
} else {
("과일 싫어");
}
  • 자바스크립트는 코드가 위에서부터 한 줄씩 읽어 내려간다.
  • if를 보는 순간, 우리 앞에는 4가지의 갈림길이 생긴 것이다.
  • 이 4가지 조건 중에 하나가 실행된다.
  • 이 4가지 조건들은 첫 번째 조건부터 차례대로 검사한다.

if ~ else if ~ else문
코드에 갈림길을 제공한다고 생각하면 쉽다.

  • 조건문에서 else if(){}else {}는 써도 되고 안 써도 된다.
  • if만 써도 된다.(조건문을 쓰고자 한다면 if는 필수로 써야 함)
    cf) switch문도 참고