본문 바로가기

Programming Language/JavaScript

[JavaScript]조건문

무엇일까?

  • 어떤 값 또는 변수가 조건을 만족하는지 기준을 세워 판별하는 문법.
  • 조건을 만족하는지 알아보기 위해 비교 연산자(comparison operator)를 사용한다.
  • 조건을 만족한다면 true, 그렇지 않다면 false 값을 출력하는데, 이를 Boolean 타입의 자료라 한다.

왜, 어디에 쓸까?

  • 기본 문법으로 어느 코딩, 언어에도 사용된다.
  • 예를 들어 배고픈 컴퓨터에게 밥을 먹이는 프로그램을 만들고 싶다면, 밥을 먹이기 전 배가 고픈지부터 물어봐야 한다. 이렇듯 우리 일상에 의사결정에 있어서 기본 질문과 같다.

어떻게 쓸까?

if (조건1) {

} else if (조건2) {

} else {

}

비교연산자(Comparison operator)

> 초과
< 미만
>= 이상
<= 이하
=== 같다
!== 다르다
== 같다
!= 다르다

주의할 점은 '==='와 '=='는 다르다는 것이다. 둘 다 같다는 의미이지만, '==='는 더욱 강력한 의미값과 데이터 형식이 모두 일지해야만 true를 출력한다.

(레퍼런스 참고)

 

JavaScript Comparison and Logical Operators

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

(다음 레퍼런스를 참고하면 '==='와 '=='의 차이를 각 경우에 대해 살펴볼 수 있다.)

 

JS Comparison Table

=== (negated: !==) When using three equals signs for JavaScript equality testing, everything is as is. Nothing gets converted before being evaluated.

dorey.github.io


논리 연산자(Logical operator)

! Not
&& Or
|| And
true || true //true
true || false //true
false || false //false

true && true //true
true && false //false
false && false //false

!false //true
!(3>2) //false
!undefined //true
!'Hello' //false

 

왜 undefined는 false이고 'Hello'는 true일까? 이를 이해하기 위해선 truthy와 falsy에 대해 알아야한다.

if (false)
if (null)
if (undefined)
if (0)
if (NaN)
if ('')

truthy는 true 같은 거, falsy는 false 같은 거라는 의미로, 위 6가지 경우를 제외하고 모두 truthy이다. 

이는 조건문을 만들 때 유용하다.

 

02. Truthy and Falsy · GitBook

02. Truthy and Falsy 이것은 자바스크립트 문법까지는 아니지만, 알아둬야 하는 개념입니다. Truthy: true 같은거... Falsy: false 같은거... 라고 이해를 하면 되는데요, 예를 들어서 다음과 같은 함수가 있

learnjs.vlpt.us


논리 연산자의 결과에 Boolean이 아닌 값이 들어가면?

OR 연산자는 truthy 한 값을 만나면, 그 값을 출력한다.(그 이후로는 평가하지 않음.)

둘 다 falsy 할 경우, 뒤에 있는 값을 출력한다.

undefined || 10 //10
5 || 10 //5
5 || console.log('실행되지 않음') //5

undefined || false //false

AND 연산자는 falsy 한 값을 만나면, 그 값을 출력한다.

둘 다 truthy 할 경우, 뒤에 있는 값을 출력한다.

undefined && 10 //undefined
5 && false //false

5&& 10 //10