If Statement
if (condition) {
statement
};
조건문
condition 을 만족하게 되면 statement 가 실행
if
→ 조건문( )
→ 만족할 시 true , 만족하지 않을 시 false 두 값 중 하나{ }
→ ( ) 값이 true 일 때 { } 내부의 코드가 실행let shot = true;
console.log('Run away!'); // Output: Run away!
// (shot 값이 true 이므로 설정되어 Run awat! 출력)
let shot = false;
console.log('Run away!'); // Output: SyntaxError
// (shot 값이 false 이므로 설정되어 출력되는 값이 없다)
If...Else Statements
if (condition) {
statement 1
} else {
statement 2
};
조건문
condition
이 만족되면 statement 1
이 실행되고, 만족되지 않으면 statement 2
가 실행
let shot = true;
shot = false;
if(shot) {
console.log('Run away!');
} else {
console.log('You are safe.');
};
// Output: You are safe.
// shot 변수가 false 이므로 else 의 console.log('You are safe.') 가 출력)
Comparison Operators (비교 연산자)
조건문을 사용할 때 비교를 위해 사용하는 연산자
<
: Less than>
: Greater than<=
: Less than or equal to>=
: Greater than or equal to===
: Is equal to!==
: Is not equal tolet speed = 120;
if(speed > 100){
console.log('Slow down');
} else {
console.log('Okay');
};
// Output: Slow down
// spped value가 120이며, >100 에 대입하였을 때 true 이므로 if문의 코드 출력)
Logical Operators (논리 연산자)
&&
: and||
: or!
: notlet shot = true;
console.log(!shot); // Output: false
//shot이 true이므로 !shot은 false
또는,
let place = 'library';
let volume = 30;
if(place === 'library' && volume > 20){
console.log('Lower your voice.');
} else {
console.log('Please keep your silence.');
};
// Output: Lower your voice.
// place가 library이고,(&&) volume은 30으로 20을 초과하므로 if문 출력
Truthy and Falsy (참 같은 값, 거짓 같은 값)
0
' '
, " "
(empty string)null
(no value at all)undefined
(variable lacks a value)NaN
(not a number)let variable = '';
if(variable){
console.log('I\'m true');
} else {
console.log('I\'m false');
};
// Output: I'm false
// variable 값이 falsy 값을 갖는 empty string이므로 else문 출력
반대로,
let variable = 21;
if(variable){
console.log('I\'m true');
} else {
console.log('I\'m false');
};
// Output: I'm true
// variable 값이 truthy 값을 갖는 number 21이므로 if문 출력
Truthy and Falsy Assignment
Logical operator (논리연산자) 등과 Truthy, Falsy를 활용하여 코드를 단축시킬 수 있다.
let defaultName;
if(username) {
defaultname = username;
} else {
defaultName = 'Stranger'
};
// 위와 같은 코드를 사용한다면, 사용자가 username을 입력하면 username으로 defaultName이 출력이 되고, 입력하지 않거나 공란으로 두게 되면 Stranger로 출력이 된다.
let defaultName = username || 'Stranger'
// or 연산자 || 를 활용한다면 동일한 의미를 가진 코드가 완성된다. ||연산자를 사용하게 되면, 좌측의 코드가 먼저 출력이 되고, 그렇지 않을 시 우측이 출력되는 메커니즘을 따르기 때문이다.
조금 더 활용해보면,
let instrument = '';
let salesList = instrument || 'guitar'
console.log(`We need to sell ${salesList}.`);
// Output: We need to sell guitar.
// instrument 변수가 false값이므로 guitar이 출력
let instrument = 'piano';
let salesList = instrument || 'guitar'
console.log(`We need to sell ${salesList}.`);
// Output: We need to sell piano.
// instrument 변수가 truth값인 piano이므로 piano가 출력
Ternary Operator
if...else
문을 다르게 표현하는 방법
if...else
를 삭제하고, ?
와 :
를 사용하여 표현할 수 있다.
let shot = true;
if(shot) {
console.log('Run away!');
} else {
console.log('You are safe.');
};
// Output: Run away!
// 와 같은 코드는 아래로 변환할 수 있다.
let shot = true;
shot ?
console.log('Run away!'):
console.log('You are safe.');
// Output: Run away!
===
를 사용해본다면,
let sound = 'bang'
if(sound === 'bang') {
console.log('Run away!');
} else {
console.log('You are safe.');
};
// Output: Run away!
// 와 같은 코드는 아래로 변환할 수 있다.
let sound = 'bang'
sound === 'bang' ?
console.log('Run away!'):
console.log('You are safe.');
// Output: Run away!
Else If Statements
else if
if...else
문에서 두개 이상의 조건이 필요할 경우 사용
let season = 'summer';
if(season === 'summer') {
console.log ('Hello hotty day!');
} else if(season === 'fall') {
console.log('Hello autumn!');
} else if(season === 'spring') {
console.log('Hello spring!');
} else if(season === 'winter') {
console.log('Hello coldy day!');
} else {
console.log('What a weird season!');
}
// Output: Hello hotty day!
The
switch
keyword
switch
복수의 if...else
문은 switch
문의로 변경 가능
예를 들어, 위 예시를 아래와 같이 바꿀 수 있다.
let season = 'summer';
switch(season) {
case 'summer':
console.log ('Hello hotty day!');
break;
case 'fall':
console.log ('Hello autumn!');
break;
case 'spring':
console.log ('Hello spring!');
break;
case 'winter':
console.log ('Hello coldy day!');
break;
default:
console.log ('What a weird season!');
break;
};
1) switch
문의 variable 값을 case
문의 value값과 비교,
→ 일치하면 case
문의 코드가 실행
→ 불일치 시 다음 case
문으로 넘어가 동일 작업 실행
2) 자바스크립트가 break
문을 만나면 해당 switch
블록을 이탈 (다음 switch
블록으로 이동)
3) case
문과 매칭되는 키워드가 없을 경우, default
문의 코드 실행