2014-04-14 2 views
1

variable === "expected" 대신 "expected" === variable과 같은 코드가 두 번 보였습니다.자바 스크립트 비교 연산자 주문

왜 그럴까요? 성능 또는 가독성이과 관련 있습니까? 개인적으로 더 혼란스럽고 항상 누군가가 문자열을 먼저 쓰고 비교 연산에서 변수를 써야하는지 궁금해했습니다.

+3

_ 요다 조건 _. 당신이 그것을 사용하십시오. –

답변

3

주된 이유는 오타가 하나의 오타가 지정을 보호하도록하는 것입니다. 일반적으로 Yoda Conditions (의견에 Paul S에게 감사)로 알려져 있습니다.

예 : 그것은 내가 2를 할당하고 또한 오류가 발생 비해 추적하기 어려운 미묘한 버그 수있는 if 문을 입력하기 때문에

var i = 1; 
if(i = 2) //no error, but unexpected behavior 
if(2 = i) //error - invalid left hand side assignment. 

if(i=2) 옵션은 예기치 않은 동작이 발생할 것 . 이 접근법은 C++와 같은 컴파일 된 언어에서 컴파일러가 오류를 발생시켜 컴파일 타임에 알 수 있도록하는 데 훨씬 유용합니다. C# 및 Java 컴파일러는 조건부를 할당 할 수 없으므로 순서가 덜 가치가 있습니다.

+0

만약 내가 새로운 방법을 찾거나 Yoda 조건, 좋은 대답에 대해서. –

+0

@IulianOnofrei - 기꺼이 도와주세요. – acarlon