네, 제 방화 용 콘솔에서 작동합니다. 왜 이런 식으로 구문 오류가 없습니까?Javascript : [] = 5, 구문 오류 없음? 왜?
[] = 5; [] = doThis(); [] = (function() {})();
왜 허용되는지 궁금합니다.
네, 제 방화 용 콘솔에서 작동합니다. 왜 이런 식으로 구문 오류가 없습니까?Javascript : [] = 5, 구문 오류 없음? 왜?
[] = 5; [] = doThis(); [] = (function() {})();
왜 허용되는지 궁금합니다.
는 한 번에 여러 변수를 설정할 수 있도록 할당 일치를 사용하여 FF에서 자바 스크립트처럼 허용 같은데 이 같은 수행합니다
[x,y] = [5,6,7];
이는 아무것도 할당 할 것이다 :
[] = [5,6,7];
을 그런 다음 "아무것도 정의되지 않은 값을 할당되지됩니다
[] = whatever
를 사용하는 경우 너무
[x] = 5; // makes x undefined
: 0
그 위에, 그것은 FF처럼 보인다는 모든 배열이 일치하지 않는 경우로 갈 경우에도 기꺼이 "그래서 RHS를 평가하는 것만으로 끝납니다.
: BTW ... 내가 그냥 설정을 무시하고 함께 이동하기 생각 그것은 크롬에서 오류가
와우, 그건 더 이상합니다. – Iggyhopper
아주 좋은 일라이! +1 –
mozilla의 구조 지정 할당 구문에 대한 자세한 내용은 여기에 있습니다. http://stackoverflow.com/questions/204444/destructuring-assignment-in-javascript –
Chrome에서 '잡히지 않은 참조 오류 : 할당에 잘못된 왼쪽'이 표시됩니다. IE8에서 "오류 : '[개체]'에 할당 할 수 없습니다. FF는 오류를 발생시키지 않습니다.
이것은 Firefox JavaScript 엔진의 실패 일 가능성이 높으며 어쨌든 배열 리터럴 []의 기능에 영향을 미치지 않는 것 같습니다. 그래서
[x,y] = [5,6]; // sets x to 5 and y to 6
"물론"일부 JS 구현은 매우 관대하며, 자동으로 여분의 값을 무시합니다 :
아하, 파이어 폭스와 필자는 다른 브라우저에서 이것을 실제로 테스트하지 않았기 때문에 실패했다. – Iggyhopper
(면책 조항이 모든 그냥 ... FF에서 물건을 실행하여 의미를 추측한다). –