본문 바로가기

FrontEnd/JavaScript

#7. 자바스크립트(javascript) - 논리 연산자(or, and, not)

반응형

# 이번 장에서는 논리 연산자에 대해 배워보도록 하겠습니다.
# Or, And, not, equality 등등

# Visual Studio Code 및 Extension 설치 방법 << Click!



# 전공자가 이해한 Javascript

 




1. Logical Operators (논리 연산자)

 


 

1) OR ( || )

OR 는 [ shift + \ ]를 두 번 눌러 "||"로 사용합니다. 기본 사용 방법은 아래와 같습니다.

위의 식은 value1, value2, check() 중에 true가 하나라도 있는 경우 true를 반환하는 식입니다. 앞에서부터 순차적으로 value 값을 확인하기 때문에 value1이 true인 경우 뒤에 있는 value2와 check() 값은 확인하지 않습니다.

만약 value1의 값이 굉장히 크고 복잡한 형태라면, value1의 값을 뒤로 미뤄 마지막으로 체크할 수 있도록 해야합니다.
아래의 예시를 확인해보겠습니다.

VALUE1 VALUE2 CHECK()
시간() 20 5 10
TURE/FALSE false true false

value1을 실행하는데 20초가 걸리고 그 값이 false인 경우, value2를 실행하는데 5초가 걸리고 그 값이 true인 경우, check()를 실행하는데 10초가 걸리고 그 값이 false인 경우로 나누어 봤습니다. 이제 아래의 표에서 실행 시간이 어떻게 달라지는지 확인해보도록 하겠습니다.

  true를 찾을 때까지 실행(노란색) 실행시간
A VALUE1 VALUE2 CHECK() 25
B VALUE1 CHECK() VALUE2 35
C CHECK() VALUE1 VALUE2 35
D CHECK() VALUE2 VALUE1 15
E VALUE2 CHECK() VALUE1 5
F VALUE2 VALUE1 CHECK() 5

경우의 수를 총 6번으로 봤을 때 실행시간이 가장 짧은 경우는 E, F 번에 실행한 값입니다. 이런 차이를 내는 이유는 OR연산자는 TRUE값을 찾을 때 까지만 실행하기 때문입니다.

A: value2 값을 찾을 때까지 value1과 value2를 실행
B: value2 값을 찾을 때까지 전 과정을 실행
C: value2 값을 찾을 때까지 전 과정을 실행
D: value2 값을 찾을 때까지 check()와 value2를 실행
E: value2 값을 첫번째에서 찾아 1단계에서 실행 종료
F: vlaue2 값을 첫번째에서 찾아 1단계에서 실행 종료

실행시간이 긴 VALUE1 의 경우는 최대한 뒤에서 마지막에 TRUE를 확인하는 것이 효율적입니다.



 

2) AND (&&)

AND의 경우는 OR과 반대로 False인 경우를 먼저 찾습니다. 따라서 이 경우도 OR 연산자와 마찬가지로 실행 시간이 오래 걸리는 값을 제일 뒤에 놓는 것이 효율적입니다.

 


 

3) not ( ! )

값을 반대로 바꿔줍니다.




2. Equality

const stringFive = '5';
const numberFive = 5;

위와 같이 타입이 각각 string 과 number 인 변수들이 있습니다.
이 둘을 비교할 때 방법은 두 가지 입니다. (1) 타입을 변경해서 같은 타입으로 비교하는 경우와 (2) 타입 변경 없이 비교하는 경우입니다.

먼저 타입을 변경해서 비교하는 경우를 보시겠습니다.


 

1) loose equality, with type conversion

타입을 변경해서 검사합니다. ( == ) or ( != )

예시와 같이 두개의 다른 타입임에도 불구하고 stringFive 와 numberFive 는 같은 값을 갖고 있다고 판단했습니다.
"=" 표시가 2개인 경우는 타입을 변경하고 검사합니다.


 

2) strict equality, no type conversion

타입을 변경하지 않고 검사합니다. ( === ) or ( !==)

 


 

3) object equality by reference

 

 


 

4) equlity-puzzler

 


 

# 위의 내용은 Youtube 드림코딩 by 엘리 를 참고해서 작성
   - 위 유투브는 도움이 되는 내용의 영상이 많습니다. 구독하시고 유용한 정보를 많이 얻는 것도 좋습니다.
# Javascript Web browser에서 보는 방법: console.log 사용
# MDN Web Docs : https://developer.mozilla.org/en-US/docs/Web/JavaScript

 

 

JavaScript | MDN

JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions. While it is most well-known as the scripting language for Web pages, many non-browser environments also use it, such as Node.js, Apache

developer.mozilla.org

 

반응형