TIL 03 | JavaScript | 비교연산자, 논리연산자
15703 단어 JavaScriptTodayILearnedJavaScript
Boolean
- 참과 거짓을 나타내는 데이터타입
비교연산자
- 일치 : ===
- 불일치 : !==
- 참 : true
- 거짓 : false
=== 와 ==의 차이
=== : 일치 비교 연산자 (boolean)
== : 동등 비교 연산자 ( 1==1, 1≠2)
=== 가 더 염격한 비교 연산자라, ===를 쓰는 것을 권장한다고 한다.
IF
- 조건문이 참인지 거짓인지에 따라 수행되는 코드가 다름.
- 참인지 거짓인지 판별하기 위해서는 조건문의 비교가 필요함.
- if - else if - else 순
if (a === 'miyeon') { // 경우 1
console.log('저는 미연입니다')
} else if (a === 'miyoni') { // 경우 2
console.log('저는 미연이 아닙니다.')
} else if (a === 'miyo') { // 경우 3
console.log('어쨌든 미연이 아닙니다.')
} else { // 위의 세 가지 경우가 모두 해당되지 않을 때
console.log('아무튼 저는 미연이 아닙니다.')
}
파라미터값이 짝수인지 홀수인지 비교하여 판별하는 함수
function oddOrEven(num) {
let num2 = num % 2;
if (num2 == 1)
console.log("Odd");
else (num2 == 0)
console.log("Even");
}
oddOrEven(5); // Odd
oddOrEven(12); // Even
- 5, 12를 INPUT 값으로 전달하여 oddOrEven 함수 호출
- 5, 12를 각각 순서대로 num에 전달하여 대입한 뒤, 2로 나눈다
- 5와 2를 나눈 나머지는 1이므로, if (num2 == 1)의 조건문이 성립된다. 따라서 oddOrEven(5)의 결과는 Odd가 출력된다.
- 12와 2를 나눈 나머지는 0이므로, if (num2 == 1)의 조건문이 성립되지 않고 else if (num == 0)의 조건문이 성립된다. 따라서 oddOrEven(12)의 결과는 Even이 출력된다.
내가 했던 실수 :: 두 가지 조건을 작성하는 경우 = 비교연산자 사용 (&&, ||)
- If 문 안에 비교 조건식을 세울 경우, 비교연산자를 사용하여 조건식을 하나씩 세워야 하는데, 나는 조건문을 중첩해서 사용해 버렸다.
function whichGrade(score) {
if (0 <= score <= 59) {
return 'F'
} else if (60 <= score <= 69) {
return 'D'
} else if (70 <= score <= 79) {
return 'C'
} else if (80 <= score <= 89) {
return 'B'
} else if (90 <= score <= 100) {
return 'A'
} else if (score > 100 || score < 0) {
return 'INVALID SCORE'
}
}
let x = whichGrade(66)
console.log(x)
// F
// INPUT 값에 어떤 숫자를 대입해도 F가 뜨는 오류 발생
if (a === 'miyeon') { // 경우 1
console.log('저는 미연입니다')
} else if (a === 'miyoni') { // 경우 2
console.log('저는 미연이 아닙니다.')
} else if (a === 'miyo') { // 경우 3
console.log('어쨌든 미연이 아닙니다.')
} else { // 위의 세 가지 경우가 모두 해당되지 않을 때
console.log('아무튼 저는 미연이 아닙니다.')
}
function oddOrEven(num) {
let num2 = num % 2;
if (num2 == 1)
console.log("Odd");
else (num2 == 0)
console.log("Even");
}
oddOrEven(5); // Odd
oddOrEven(12); // Even
function whichGrade(score) {
if (0 <= score <= 59) {
return 'F'
} else if (60 <= score <= 69) {
return 'D'
} else if (70 <= score <= 79) {
return 'C'
} else if (80 <= score <= 89) {
return 'B'
} else if (90 <= score <= 100) {
return 'A'
} else if (score > 100 || score < 0) {
return 'INVALID SCORE'
}
}
let x = whichGrade(66)
console.log(x)
// F
// INPUT 값에 어떤 숫자를 대입해도 F가 뜨는 오류 발생
- 두 가지 조건을 사용하는 경우, 아래 코드처럼 비교연산자(&&, ||)를 사용해야 한다.
function whichGrade(score) {
if (score >= 90 && score <= 100) {
return 'A'
} else if (score >= 80 && score <= 89) {
return 'B'
} else if (score >= 70 && score <= 79) {
return 'C'
} else if (score >= 60 && score <= 69) {
return 'D'
} else if (score >= 0 && score <= 59) {
return 'F'
} else if (score < 0 || score > 100) {
return 'INVALID SCORE'
}
}
let x = whichGrade(77)
console.log(x)
// C
switch ~ case 와의 차이점
- switch 조건문의 case 에는 상수값(숫자)과 문자열만 사용 가능, 조건식 사용 불가. (가독성 Good)
- 때문에, 조건식을 사용하려면 if ~ else if 문을 사용해야 한다.
논리연산자
OR : 두 조건식 중 하나만 참이어도 참이 됨.
- switch 조건문의 case 에는 상수값(숫자)과 문자열만 사용 가능, 조건식 사용 불가. (가독성 Good)
- 때문에, 조건식을 사용하려면 if ~ else if 문을 사용해야 한다.
OR : 두 조건식 중 하나만 참이어도 참이 됨.
1 + 1 === 2 || 1 + 1 === 3
참 || 거짓 = 참(TRUE)
AND : 두 조건식이 모두 참이어야 참이 됨.
1 + 1 === 2 && 1 + 1 === 3
참 && 거짓 = 거짓 (FALSE)
Truthy와 Falsy
Truthy가 아니면 Falsy이고, Falsy가 아니면 Truthy이다!
- Truthy : 참은 아니지만 참 같은 값. Boolean 데이터 타입의 진짜 True는 아니지만, True처럼 관리되는 값.
- Falsy : 거짓은 아니지만 거짓 같은 값. Boolean 데이터 타입의 진짜 False는 아니지만, False처럼 관리되는 값.
- 개인적으로 학부 때 if문을 공부하면서 제일 헷갈렸던 개념이다. if 조건문 안에 "false"라는 영단어가 들어가 있지가 않고, 숫자 0만 넣어도 false라고 인식을 한다니!? 물론 지금은 주입식교육으로 인해 if(0)이 무조건 false라는 것을 알고 있지만, 이 개념이 Truthy와 Falsy로 정의되어 있는지는 처음 알았다. 이번 기회에 확실히 알고 넘어가서 너무 좋다. 지식의 확장은 늘 흥분되는 일인 것 같다..!! 이런 건 코드로 봐야 직빵으로 이해되지. 당장 확인해 보자.
let a = 0
let b = 100
if (a) { // a에 0이 대입되어 false값으로 변하기 때문에, 이 조건문은 실행되지 않음
console.log("Falsy")
} else if (b){ // b에 100이 대입되어 실제 true값=1은 아니지만, 참값으로 여겨져 이 조건문이 실행됨
console.log("Truthly")
}
// Truthly
Author And Source
이 문제에 관하여(TIL 03 | JavaScript | 비교연산자, 논리연산자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@miyoni/TIL-03저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)