>웹 프론트엔드 >JS 튜토리얼 >9 JavaScript 트랩 및 주석 분석_Javascript 기술

9 JavaScript 트랩 및 주석 분석_Javascript 기술

WBOY
WBOY원래의
2016-05-16 19:04:26856검색

1. 마지막 쉼표

이 코드에서처럼 마지막 쉼표에 주의하세요. 언어학적 관점에서 보면 좋을 것입니다(파이썬의 유사한 데이터 유형 사전이 이를 허용합니다). IE는 구문 오류를 보고하지만 언어가 명확하지 않습니다. 사람의 눈으로는 수천 줄의 코드만 스캔할 수 있습니다.



2. 이 코드의 참조는

다음과 같이 변경됩니다.




기대한 것만큼 좋지는 않습니다. 대답은 "JavaScript 규칙"이 아닙니다. MyObject.ClickHandler를 실행할 때 코드의 빨간색 줄에서 this에 대한 참조는 실제로 document.getElementById("theText")의 참조를 가리킵니다. 다음과 같이 해결할 수 있습니다.




본질적으로 이는 JavaScript 범위의 문제입니다. 살펴보면 하나 이상의 솔루션이 있음을 알 수 있습니다.

3. 신원 도용
JavaScript의 HTML ID와 동일한 변수 이름을 사용하지 마세요. 다음 코드:





IE는 정의되지 않은 개체 오류를 보고합니다. 내가 말할 수 있는 것은:

4. 문자열은 다음과 같이 첫 번째 일치

만 대체합니다.

<script> <BR> var theObj = { <BR> city : "Boston", <BR> state : "MA", <BR> } <BR></script> <script> <BR>var MyObject = function () { <BR> this.alertMessage = "Javascript rules"; <BR> this.ClickHandler = function() { <BR> alert(this.alertMessage ); <BR> } <BR>}(); <BR>document.getElementById(”theText”).onclick = MyObject.ClickHandler <BR></script> 그리고 실제로 결과는 다음과 같습니다. "This_is a title"입니다. JavaScript에서 String.replace의 첫 번째 매개변수는 정규식이어야 합니다. 따라서 올바른 접근 방식은 다음과 같습니다. <script> <BR>var MyObject = function () { <BR> var self = this; <BR> this.alertMessage = “Javascript rules”; <BR> this.OnClick = function() { <BR> alert(self.value); <BR> } <BR>}(); <BR>document.getElementById(”theText”).onclick = MyObject.OnClick <BR></script><script> <BR> TheButton = get("TheButton"); <BR></script>var fileName = "This is a title".replace(/ /g,"_") <script> <BR> var fileName = "This is a title".replace(" ","_"); <BR></script>

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.