일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- javascript내장함수
- REACT
- websquare
- 정보계
- 거듭제곱
- orangefororacle
- 등가조인
- 컬럼조회
- 소수 #소인수분해 #소인수
- NVM
- SQL
- JavaScript
- 운영계
- websqueare
- java
- eclipse shortcut
- 펙토리얼
- 계정계
- StringTokens
- Baekjoon
- Collections.sort
- 환경변수등록
- 기간계
- sqldeveloper
- 등호
- oracle
- 대외계
- 마이플랫폼
- fusionchart
- innerjoin
- Today
- Total
티끌모아 개발
삼항연산자 & 논리연산자(!!) 본문
이번 시간에는 삼항 조건 연산자에 대해서 알아보자!
삼항 조건 연산자는 영어로 ternary operator 혹은 Conditional operator이다.
오늘부터 REACT를 공부한다.
그런데, REACT에서는 IF 절을 사용하는데 제약이 많다. 그래서, 삼항 연산자가 그 역할을 대신해야 한다. 그런 이유로, 본격적으로 REACT를 들어가기 전에 삼항 조건 연산자에 대해서 알아보자!
참고로, 이 연산자는 C,C++,JAVA 와 같은 다른 언어에서도 지원된다.
이제 삼항 연산자의 정의에 대해서 알아보자!
여기서 삼항은

삼항 연산자이란
프로그램에서 사용하는 조건 연산자가 있는데, 바로 항이 세 개가 필요한 것이 삼항 연산자이다.


ex)
let str = true ? "참" : "거짓"
console.log( str ) // => 참
=> str이 true이면, "참"을 assign 하라!! false이면, "거짓"을 assign 하라!!
우리는 왜 삼항 연산자를 사용해야 하는 걸까???
=> 가장 큰 이유는 코드의 간결성 때문이다.
다음 예시를 보자
case 1)

이 조건문을 삼항 연산자로 바꿔보면, 다음과 같다.

똑같은 일을 하는 코드가 매우 간결해진 것을 볼 수 있다.
근데, 2번 라인의 삼항 연산자가 너무 긴 것같다면, 이렇게 해줄 수도 있다.

삼항 연산자는 중첩해서 쓸 수도 있다.
case2)

- condition1 이 거짓이기 때문에 '와우!'가 아닌 condition2로 넘어간다. 근데, condition2도 거짓이기 때문에, 'biabla'가 아닌 'foo' 가 최종적으로 value에 assign되게 된다.

이런 식으로 중첩되는 코드는 가급적 안 쓰는 게 좋다.
=> 무엇보다도 헷갈린다. 이럴 때는 차라리 if 절을 사용하는 게 더 좋을 수도 있다.
결론은, 삼항 연산자는 왠만하면 중첩하지 말고, case1)처럼 한 번만 사용하자!!
삼항 연산자에 대해 좀 더 공부해보고 싶다면, MDN에서 연습해보는 걸 권한다.
[보너스] 간결성을 위한 !! 사용법
자바스크립트를 보다가 생전 처음 보는 문법이 있어서 공유한다.
contains(vertex) {
return !!( matrix[vertex] ); => ** 이 부분에 !! 뭐임?? **
}
=> matrix[vertex]를 반환하게 되면, 해당 행렬 배열에 있는 vertex 인덱스 값을 반환한다.
하지만, 앞에 느낌표(논리연산자)를 두 개 붙이게 되면, 해당 값이 boolean으로 변환된다.
(matrix에 vertex가 있나요? "예" / "아니오"로만 답해주세요 와 같은 로직이다)
어떤 값이든 돌아오면, contains 메서드는 true를 반환하고, 없으면 false를 반환한다.
사실, If else문으로 작성할 수도 있다.
(버텍스가 있다면 트루를 반환하고, 아니라면 펄스를 반환하세요 같은 식으로~)
하지만, 이 문법 역시 삼항 연산자처럼 코드의 간결성을 위해, 쓸 수 있기 때문에 공유해본다.
혹은, 내가 쓰지는 않더라도, 누군가가 이런 코드를 썼을 때, 이해할 수 있기 위해서 알아두자!!
이 부분에 대해서 좀 더 알고 싶다면, 이 링크를 참고하자 여기를 클릭!!
이상으로 자바스크립트 삼항 연산자 편 끝!!
자료 출처 및 참고 자료
- MDN 삼항 연산자
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Conditional_Operator
- What's the double exclamation mark for in JavaScript?
https://brianflove.com/2014-09-02/whats-the-double-exclamation-mark-for-in-javascript/#:~:text=If%20you%20have%20ever%20noticed,(true%20or%20false)%20value.
'javascript' 카테고리의 다른 글
[CSS] 원하는 속성이나 값 추출법 (0) | 2021.12.30 |
---|---|
.attr() 사용법 (0) | 2021.12.29 |
전역변수 선언 시 알아두어야 할 점. (0) | 2021.11.11 |
부모창에서 자식창으로 값 전달. (0) | 2021.09.30 |
페이지 검색 후 나온 리스트를 클릭해서 상세페이지로 들어갔다 뒤로가기 버튼으로 되돌아올 때 검색결과 유지하는 법. (0) | 2021.03.12 |