이 두 연산자는 자주 사용되며 항상 혼동되기 때문에 기록해 두세요. . .
a() && b(): a()를 실행한 후 true가 반환되면 b()가 실행되고 a()를 실행한 후 false가 반환되면 전체 표현식이 다음을 반환합니다. a() , b() 값이 실행되지 않습니다.
a() || b(): a() 실행 후 true가 반환되면 전체 표현식은 a()의 값을 반환하고, a(), b( 실행 후 false가 반환되면 b()는 실행되지 않습니다. )가 실행되고 b()의 값을 반환합니다.
&&는 ||
코드는 다음과 같습니다
alert((1 && 3 || 0) && 4) //결과 4 ①
경고(1 && 3 || 0 && 4) //결과 3 ②
경보(0 && 3 || 1 && 4) //결과 4 ③
분석
문 ①: 1&&3은 3을 반환합니다. || 0은 3을 반환합니다. => 3&&4는 4를 반환합니다.
문장 ②: 1&&3을 먼저 실행하여 3을 반환한 다음 0&&4를 실행하여 0을 반환하고 마지막으로 실행 결과를 3||0과 비교하여 3을 반환합니다
문장 ③: 먼저 0&&3을 실행하여 0을 반환한 다음 1&&4를 실행하여 4를 반환하고 마지막으로 실행 결과를 0||4와 비교하여 4를 반환합니다
참고: 0이 아닌 정수는 모두 true이고 정의되지 않으며 null 및 빈 문자열 ""은 false입니다.