새롭게 배운 내용 (개발자 단체카톡)

2022. 5. 26. 12:55배움 일기

Udemy 라는 강의 사이트에서 Winterlood 님의 React 강의를 수강하고 있다.

강의 퀄리티도 매우 뛰어나지만 가장 만족한 것은 수강생들의 단체 오픈 카톡방이 존재한다는 것이였다.

 

학원에서는 주로 java 를 사용해서 서버를 배운다.

int a = 10; 
console.log(10 <= a == 20);

이런 문법은 절대 사용하면 안된다 라고 말씀 해주셨다.

물론 실행 결과도 Error를 출력했다.

저렇게 사용하려면 

int a = 10;

console.log(a <= 10 && a <= 20)

이렇게 and 연산자를 사용해야 한다.

 

선생님과 자바스크립트에서도 테스트를 해봤다.

 

결과는 ...

????!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

왜 false가 나오는지도 솔직히 모르겠다.

논리적 오류가 발생했다.

 

그래서 바로 개발자 단톡방에 질문을 던졌다.

돌아온 답변은

 

황덕구님 최고

처음에는 이게 무슨소리지? 했지만 자세히 보니 온몸에 소름이 돋았다 ㅋㅋㅋ

 

boolean 에서 True 는 숫자값 1을 가지고 false 는 숫자값 0을 가진다.

 

두개의 연산으로 나눠서 연산 결과를 출력한다.

 

1) 첫번째 연산 (10 <= a)

 

코드가 실행되고 10 <= a 를 비교하면 

a는 10을 가지고 있는 변수니까 당연히 True를 반환한다.

첫번째 연산 결과의 값 = 1

 

2) 두번째 연산 ( 첫번째 연산 > 20)

 

현재 첫번째 연산 결과는 1 을 가지고 있다.

1이 20보다 큰가? 당연히 아니다. 그러니까 false를 출력하는 것이다.

 

이 연산 결과가 안믿긴다면 저 20을 1로 바꿔서 다시 실험 해 보았다.

 

 

즉 저 코드는 순차적으로 실행하고 결과는 두번째 연산의 결과만을 출력한다.

그래서 and or 연산자를 무조건 사용해야 내가 원하는 결과를 출력 할 수 있다.

 

답변 주신 황덕구님께 너무 너무 감사드립니다 ㅎㅎㅎ

'배움 일기' 카테고리의 다른 글

브라우저의 렌더링 과정  (0) 2022.06.26
MPA & SPA  (0) 2022.06.03