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 |