새롭게 배운 내용 (개발자 단체카톡)
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 연산자를 무조건 사용해야 내가 원하는 결과를 출력 할 수 있다.
답변 주신 황덕구님께 너무 너무 감사드립니다 ㅎㅎㅎ