2016-09-01 1 views
0

Javascript에서 책을 읽었습니다. 할당 연산자와 연결에 관한 혼란스러운 부분이 있습니다. 코드자바 스크립트는 +를 연결하고 + =를 할당합니다.

var msg = 'JavaScript'; msg += ' Code'; //Concatenate 
var intA = 8; intA -= 4; //Subtract and assign 
var intB = 24; intB *= intA; //Multiply and assign 

var str = 'Add & assign string: ' + msg; 
    str += '<br>Multiply & assign: ' + initB; 

아래를 참조하시기 바랍니다 나는 += 연산자, 문자열을 처리 할 때 두 피연산자를 연결 한 것을 얻을 수를 처리 할 때 피연산자의 값을 추가하고 첫 번째 피연산자로 계산 된 값으로 재 할당.

또한 str'Add & assign string ' + msg;으로 초기화 된 다음 다른 문자열과 변수가 추가됩니다.

하지만 왜 str 변수의 예에서 아래 내용을 작성하지 않았습니까?

var str = 'Add & assign string ' + msg + '<br>Multiply & assign: ' + initB; 

오전 나는이 사용 사례에 +와 + =, 또는 그들이 같은 일 사이에 미묘한 차이를 오해?

+0

이들은 완전히 동일합니다. – Blackhole

+0

'foo + = bar'는'foo = foo + bar'에 대한 문법적 설탕입니다. – Jecoms

+2

아니요, 당신은 오해가 아닙니다. 코드는 예제 코드와 정확히 똑같은 것을 생성합니다. 나는 그들이 같은 결과를 얻는 다른 방법을 설명하려하고 있다고 생각합니다. –

답변

3

a += b 

같은 표현은 해석됩니다 (거의) 그것은 언어 구조를 설명

a = a + b 

인위적인 예는 인위적인 있습니다 작성된 정확히 것처럼, 반드시 일반적인 관행을 반영하지 않습니다. (그렇게했다면 좋겠지 만, 코드 예제를 만드는 것은 어려운 일입니다.)

+0

나는 자연스럽게 신중하기 때문에 "(거의) 정확하게"썼다. 그러나 어떤 생각을하고 나면 해석이 다른 일을 끝낼 때의 예를 생각해 낼 수 없다. – Pointy