점점 미쳐가는 개발 일기

[Javascript] 4. 조건문: if, if-else, if-elif-else 본문

Front-end/Javascript

[Javascript] 4. 조건문: if, if-else, if-elif-else

Sangwoo Seo 2023. 7. 10. 15:20
 

[인프런x코드캠프] 훈훈한 Javascript - 인프런 | 강의

다른 언어도 많은데.. 왜 자바스크립트여야 하냐구요? 자바스크립트는 전세계에서 가장 많이 쓰는 언어로, 비전공자도 빠르게 배울 수 있고 이해하기 쉬운 구조를 가지고 있어요. 게다가 구글,

www.inflearn.com

인프런 강의 "훈훈한 Javascript"를 보고 정리한 내용이며, 추가로 공부한 내용도 덧붙였습니다.


1. 비교 연산자

자바스크립트에서 비교 연산자는 두 값의 동등성 또는 대소 관계를 비교하는데 사용됩니다. 가장 많이 사용하는 비교 연산자는 ==(느슨한 비교)과 ===(엄격한 비교)입니다.

 

'===' 연산자는 엄격한 비교를 수행하여 피연산자의 값과 타입 모두를 비교합니다. 따라서 예상치 못한 타입 변환이 발생하지 않습니다.

"abc" === "abc" // true
"abc" === "123" // false

 

'==' 연산자는 두 피연산자의 값을 비교하지만, 피연산자가 서로 다른 유형인 경우 타입 변환을 수행한 후 비교합니다. 이 때문에 예상치 못한 결과를 초래할 수 있습니다.

0 == "0" // true
0 == [] // true
"0" == [] // false

 

2. 조건문

조건문은 주어진 조건이 참인지 거짓인지에 따라 코드의 실행 흐름을 제어합니다. 자바스크립트에서는 if, if-else, if-elif-else 문을 제공합니다.

if문은 조건식이 참이면 주어진 코드 블럭을 실행합니다.

if (name === "Jason") {
  console.log("Hi, Jason")
}
// 만약 name이라는 변수와 "Jason"과 같다면, Hi, Jason을 출력

 

if-else문은 조건식이 참이면 첫 번째 코드 블럭을, 거짓이면 두 번째 코드 블럭을 실행합니다.

if (조건문) {
 // 조건이 성립하면 실행될 코드
} else {
 // 조건이 성립하지 않으면 실행될 코드
}


if-elif-else문은 여러 조건을 체크하고, 참인 조건의 코드 블럭을 실행합니다.

if (조건문) {
 // 조건이 성립하면 실행될 코드
} else if (조건문) {
 // 이전 조건문이 통과되지 않으며 else if 조건이 성립하면 실행될 코드
} else {
 // 모든 조건이 성립하지 않으면 실행될 코드
}

 

3. 논리 연산자

논리 연산자는 주로 조건문에서 여러 조건을 조합할 때 사용됩니다. 자바스크립트에서는 && (AND 연산자)와 || (OR 연산자)를 제공합니다.

'&&' 연산자는 모든 피연산자가 참이면 true를 반환합니다.
'||' 연산자는 하나 이상의 피연산자가 참이면 true를 반환합니다.

 

4. 원시 타입과 참조 타입

자바스크립트에는 원시 타입과 참조 타입 두 가지 주요 데이터 유형이 있습니다.

원시 타입(Primitive Type)

- Number: 정수와 실수를 포함하는 모든 숫자를 나타냅니다.
- String: 텍스트 또는 문자열 데이터를 나타냅니다.
- Boolean: 참(true) 또는 거짓(false) 두 가지 값을 가질 수 있습니다.
- Null: 의도적으로 값이 없음을 나타내는 특별한 값입니다.
- Undefined: 값이 할당되지 않은 변수의 값입니다.
- Symbol: ES6에서 도입된 유형으로, 고유하고 변경 불가능한 데이터 타입입니다.
- BigInt: 매우 큰 정수를 나타내기 위해 ES2020에서 도입된 유형입니다.

 

원시 타입의 특징은 불변성(Immutability)입니다. 즉, 한 번 생성된 원시 값은 읽기 전용으로 변경할 수 없습니다. 새 값을 할당하면 기존 값이 변경되는 것이 아니라 새로운 메모리 공간이 생성되고 그 공간에 새 값이 저장됩니다.

참조 타입(Reference Type)

참조 타입에는 주로 객체(Object), 배열(Array), 함수(Function) 등이 있습니다. 참조 타입의 변수는 메모리 상의 객체를 가리키는 참조(Reference)를 값으로 갖습니다.

참조 타입의 가장 큰 특징은 객체의 속성(Property)이 변경 가능(Mutable)하다는 것입니다. 한 변수에서 참조 타입의 값을 변경하면, 해당 객체를 참조하는 모든 변수에서 그 변경 사항을 볼 수 있습니다.

let person1 = { name: "Alice" };
let person2 = person1;
person2.name = "Bob";

console.log(person1.name);  // "Bob"
console.log(person2.name);  // "Bob"

이 코드에서 person1과 person2는 동일한 객체를 참조하므로, person2에서 이름을 변경하면 person1에서도 변경된 이름을 볼 수 있습니다. 이것은 참조 타입의 변수가 실제 데이터 대신 메모리 내 위치(참조)를 저장하기 때문입니다.