[JS] ||과 &&
자료 출처 - 모던 JavaScript 튜토리얼
||의 활용법
||
은 하나만 참이면 나머지 값과 상관없이 항상 참이기 때문에 앞에서부터 첫번째 truthy
값이 나올 때까지만 연산을 한다.
let firstName = "";
let lastName = "";
let nickName = "바이올렛";
alert( firstName || lastName || nickName || "익명"); // 바이올렛
빈 문자열은 falsy
다. 위에서 alert
문은 앞에서부터 차례대로 truthy
값을 찾을 것이다. 해당 alert
문은 처음 truthy
값이 나오는 nickname
까지 연산을 하고 nickname
을 화면에 출력할 것이다. 만약, nickname
도 빈 문자열과 같은 falsy
값이었다면, 익명
이 화면에 출력되었을 것이다.
alert는 return 값이 없다
alert( alert(1) || 2 || alert(3) );
위 코드의 결과는 화면에 1이 출력되고, 2가 출력된다. 3은 안 된다.
|| 연산에서 처음 alert(1)
을 평가할 때 1이 출력된다. 하지만 alert
메소드는 return 값이 없어서 undefine
을 반환한다. undefine
은 falsy
값이라 다음 항목으로 넘어간다. 2는 truthy
값이기 때문에 2를 화면에 출력하고 다음으로 넘어가지 않고 종료한다.
alert( alert(1) && alert(2) );
&&
연산은 하나라도 falsy
값이 있으면 무조건 false
이기 때문에 첫 falsy
값을 찾을 때까지만 연산을 한다. 위 코드에서 alert(1)
을 평가하면 화면에 1이 출력된다. 하지만 리턴 값이 없어서 undefine
이 전달되고 falsy
값을 전달 받은 &&
연산자는 다음 항목을 검사하지 않고 종료한다.
&&는 || 보다 우선 순위가 높다
a && b || c && d
(a && b) || (c && d)
위 두 코드는 결과가 같다. &&
연산은 ||
연산보다 우선 순위가 높아 괄호가 없어도 먼저 연산한다.
Author And Source
이 문제에 관하여([JS] ||과 &&), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@e7838752/JSoperator저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)