어떤 조건을 판별하는 기준을 만드는것
반드시 비교연산자가 필요할것 (당연히.. 없어도되지)
비교연산자
1. === , !==, <,<= ,>, >= 등등..
결과는 항상 true 혹은 false를 return 한다.
== 같다와 != 다르다는 엄격하게 비교해주지 않기때문에 비추천한다.
== 는 예외가 너무많다
if(조건1){
// 조건1 이 통과할 경우
} else if(조건2){
// 조건1 이 통과하지않고
// 조건2가 통과할 경우
} else{
// 모든 조건이 통과하지 않는 경우
}
논리연산자(Logical Operator)를 사용한다.
isStudent && isFemale ;
학생이면서, 여성일때 통과
둘다 true 일때 true
isStudent || isFemale ;
학생이거나, 여성일때 통과
둘중 하나만 true일때 true
!isStudent && isFemale ;
학생이 아니면서, 여성일 때 통과
값이 반전된다.
undefined // falsy 한 값
!undefined // truty 한 값
'Hello' // 빈문자열이 아닌 String은 truty 하다.
!'Hello' // 그러므로 falsy
수많은 예외를 기억해야하나?
기억해야할 6가지 falsy 값
1. false
2. null
3. undefined
4. 0
5. NaN // Not a Number라는 의미의 숫자 키워드
6. '' // 빈 문자열
나이를 입력받아 술을 마실 수 있는지(18세이상) 여부를 리턴해야 합니다.
expect(isOldEnoughToDrink(40)).to.be.true;
위 내용의 의미는 다음과 같습니다.
isOldEnoughToDrink(40)
의 리턴값이 true가 되기를 기대한다.
expected undefined to be true
이 내용을 풀어서 설명하면,
true가 되어야 할 것으로 기대했지만, 실제로는 undefined라는 값으로 나왔다.
그러므로 어딘가에 return을 undefined로 하고있거나,
return이 되지않는 곳이 있을수 있는것이다.
이러한 일련의 과정을 디버깅이라고 한다.