JavaScript에서 논리 연산자 또는 연산자를 사용할 때 단락 회로 평가가 작동하는 방식을 이해하지만 이상한 가장자리 인 것처럼 보입니다. 알다. a
와단락 회로 논리 또는 명령문, 인라인 삼원 문자와 결합
const a = 'a' || 'b';
이 'a'
의 값을 갖는
그래서,이 조각은 내가 기대할 수있는 방식으로 작동합니다.
그리고 물론
,이 또한 내가 기대하는 방식으로 작동 :a
와
const a = false || 'b';
이 'b'
의 값을 갖는.
그러나, 나는 이런 식으로 이상한 상황으로 실행했습니다 :
a
지금
'a'
의 값이
const a = true || true || true ? 'a' : 'b';
.
const a = true || false || true ? 'a' : 'b';
및 a
여전히 'a'
의 값이 : 나는 같은 다른 조합을 시도했습니다. 시도
또 다른 것은이 같은 것입니다 :
const fn =() => true ? 'a' : 'b';
const a = true || fn();
물론 a
의
true
의 값을 가지고 있으며,
fn
가 호출되지 않습니다.
여기 무슨 일 이니?
작업 순서 ... 'true || 사실 || 사실입니까? 'a': 'b''는'(true || true || true)와 동일합니까? 'a': 'b '' – JJJ