2014-07-18 1 views
2


나는 SO에서 검색했지만 비슷한 것을 찾지 못했습니다. 어쩌면 잘못된 검색 키를 사용하고있을 수도 있습니다.
나는이 if 한 Statment자바 스크립트에서 쉼표가있는 경우

var a = location.hash.replace(/^#/, ""); 

    if (container = $("#content"), a) { 
     ..content 
    } else { 
     ...other code 
    } 

첫 번째 부분 container = $("#content") 컨테이너에 $("#content")의 값을 할당되지만 만약 내부에 쉼표가 왜 이해가 안 돼요을 발견했을 때 나는 자바 스크립트 라이브러리를 편집했다. AND 연산자와 같은가요? if (container = $("#content") && a)과 같은 것? 무엇이 평가됩니까?

+2

자바 스크립트는 (지금까지) 나의 주요 프로그래밍 언어입니다. 이전에 연산자를 보았지만, 실제로 유용 할 때만 나타났습니다. 이 경우,'if' 문에 과제를 던져서 '라인을 저장'하고 싶었던 것처럼 보입니다. 내 의견으로는, 그것은 아주 가독하지 않습니다. 비록 이것이 '모든 바이트 카운트'라는 라이브러리 코드라면 라이브러리가 축소 될 수 있다고 가정합니다. 그래서 그들은 왜 이런 식으로 코드를 작성 했는가 ... 분명히 나에게는 수수께끼이다. –

+0

덕분에 @ChrisCirefice, 나는 이것을 – faby

답변

3

JavaScript의 쉼표 연산자는 다른 C 유사 언어의 개념과 매우 유사합니다. 여러 개의 표현식을 하나의 (구문적인) 표현으로 함께 묶는 방법입니다. 전체 값은 목록에있는 마지막 표현식의 값입니다.

따라서이 경우 container = $("#content")을 평가 한 다음 a을 평가합니다. 전체 값은 a입니다.

이유는입니다. 그 코드는 그렇게 쓰여졌습니다. 쉼표 연산자가 유용 할 때가 있지만 대개 입력을 저장하고 코드를 좀 더 간결하게 만드는 방법 일뿐입니다.

+0

고맙게 생각합니다. 나는 그것을 모른다 – faby

2

쉼표 연산자입니다.

기본적으로 두 가지 일을합니다. 먼저 할당이 있고 ,a을 평가하고 if 조건에서 유효성을 검사합니다.

+0

고마워! 배우는 것을 결코 멈추지 마십시오 – faby

관련 문제