나는 UglifyJS에서 몇 가지 물건의 출력을보고 다음과 같은 몇 가지 코드를 통해 발생 하였다이 JavaScript가 작동하는 이유는 무엇입니까?
var a = 0;
var b = function() {
return function() {
a++;
}(), 'Hello, World'
}();
a
이 1
및 b
에있는 코드를 실행 한 후 문자열 Hello, World!
입니다.
언뜻보기에 은 undefined
이 될 것입니다. 반환 값이없는 함수의 결과처럼 보이지만 그 뒤에 쉼표와 문자열 리터럴이옵니다.
왜이 기능이 작동합니까?
그리고 왜 UglifyJS는 익명 함수를 실행하지 않고 Hello, World!
을 다음 문장으로 반환하지 않습니까?
더 좋은 질문은 왜 당신 (또는 누구든지)이 방법으로 자바 스크립트를 작성하는 것입니까? 코드는 모호하지 않아야합니다. –
@CoreyOgburn 쉼표 연산자가 무엇인지 아는 경우 애매하지 않습니다. – AD7six
'var a = ("rofl", "lol!") ;; – jAndy