자바스크립트 질문입니다
조회수 508회
var num = 11;
(num > 100) && num++;
document.writeln("num : "+num+"<br/>"); //값num : 11
(num < 100) || num++;
document.writeln("num : "+num+"<br/>");//값num : 11
(num < 100) && num++;
document.writeln("num : "+num+"<br/>");//값num : 12
(num > 100) || num++;
document.writeln("num : "+num+"<br/>");//값num : 13
document.writeln("12&1 : "+!(12&1)+"<br/>");//12&1 : true
document.writeln("13&1 : "+!(13&1)+"<br/>");//13&1 : false
값이 이렇게 나오는데 3번쨰 부터 100이 클 경우 변수의 값이 하나씩 늘어나는지 모르겠어요.,.,.설명좀해주실분.. 그리고 마지막 부분 왜 true 가 나오고 false 가 나오는지도 설명좀...ㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
모든것은 연산자님의 뜻대로...
논리 연산자
좌측변 && 우측변
AND 연산자는 좌측변이
false
면 우측변이true
여도 결과는false
이므로 좌측변이false
일 때 우측변의 평가(≒실행)를 생략합니다.좌측변 || 우측변
OR 연산자는 어느 한 쪽이
true
면 다른 한 쪽은 뭐든 상관없이true
이므로 좌측변이true
일 때 우측변의 평가를 생략합니다.위를 바탕으로 한 줄씩 보면:
var num = 11; (num > 100) && num++; // 좌측변이 false이므로 우측변은 생략 (num < 100) || num++; // 좌측변이 true이므로 우측변은 생략 (num < 100) && num++; // 좌측변이 true이므로 우측변까지 실행 num은 12 (num > 100) || num++; // 좌측변이 false이므로 우측변까지 실행 num은 13
가 됩니다.
비트 연산자
12 & 1
의 연산 결과는0
입니다.&&
는 논리 AND라고 부르고,&
는 비트 AND라 부르는 것으로서, 둘은 다릅니다.console.log(12..toString(2)) /* "1100" */ console.log(1..toString(2)) /* "1" */ console.log(12 & 1) /* 1100 과 0001 의 비트 AND 결과는 0000 */
끗.
- 퇴근한다고 막 썼더니 오류가 많았네요. 글 수정했습니다. 편집요청빌런 2020.1.21 19:14
- 아~ !!알려주셔서 감사합니다!~ 알 수 없는 사용자 2020.1.22 08:54
댓글 입력