반응형
JavaScript가 if 문에서 쉼표를 허용하는 이유는 무엇입니까?
어떤 종류의 구문 분석 오류를 생성해야하는 것처럼 보이지만 그렇지 않은 자바 스크립트 구문을 발견했습니다.
if (true, true) {console.log('splendid')} else {console.log('horrid')} // splendid
if (true, false) {console.log('splendid')} else {console.log('horrid')} // horrid
모든 표현식이 실행되지만 마지막 표현식 만 로직에 영향을 미치는 것 같습니다.
if (console.log('super'), true) {console.log('splendid')} // super splendid
누구든지 그것이 유효한 자바 스크립트 구문 인 이유를 알고 있습니까? 그것에 대한 실용적인 사용이 있습니까?
쉼표 연산자는 여러 표현식을 함께 연결하고 연산의 결과는 마지막 피연산자의 값입니다. 유일한 실제 용도는 할당 또는 함수 호출과 같은 여러 부작용이 발생할 때입니다.
쉼표 연산자는 각 피연산자 (왼쪽에서 오른쪽으로)를 평가하고 마지막 피연산자의 값을 반환합니다.
https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Expressions_and_Operators#comma_operator
자바 스크립트의 쉼표는 사실 꽤 난해합니다. 내가 본 가장 멋진 용도는 이것입니다
while(doSomething(), checkIfSomethingHappened());
가장 일반적인 것은 var가 현대 js에서 사용되는 방식입니다.
var foo = 1,
bar = 2;
이것은 루프에 여러 반복기가있을 수있는 대부분의 다른 프로그래밍 언어와 동일합니다.
int x,y;
for(x = 0, y = 0; x < 10 || y < 100; x++, y++) {
....
}
참고 URL : https://stackoverflow.com/questions/5347995/why-does-javascript-accept-commas-in-if-statements
반응형
'IT박스' 카테고리의 다른 글
Visual Studio에서 네임 스페이스 들여 쓰기를 중지하도록하는 방법이 있습니까? (0) | 2020.12.01 |
---|---|
중괄호 일치를위한 IntelliJ IDEA 바로 가기 키맵 (0) | 2020.12.01 |
URL에 공백이 있습니까? (0) | 2020.12.01 |
자바 : 특정 코드 블록에 시간 초과 설정? (0) | 2020.12.01 |
Assert.AreNotEqual과 Assert.AreNotSame의 차이점은 무엇입니까? (0) | 2020.11.30 |