다음을 통해 공유


스크립트 문제 해결

업데이트: 2007년 11월

모든 프로그래밍 언어에는 초보자나 숙련된 사용자가 겪을 수 있는 문제들이 포함되어 있습니다. 다음에 설명되어 있는 사항들은 JScript 스크립트를 작성하면서 겪게 되는 문제들입니다.

구문 오류

프로그래밍 언어의 구문은 일반 언어의 구문에 비해 훨씬 더 엄격하므로 스크립트를 작성할 때에는 세부 사항에도 주의를 기울여야 합니다. 예를 들어, 특정 매개 변수가 문자열이 되도록 하려는 경우 인용 부호 안에 넣지 않으면 문제가 발생합니다.

스크립트 해석 순서

웹 페이지에서 JScript 해석은 각 브라우저의 HTML 구문 분석 프로세스에 따라 결정됩니다. <HEAD> 태그 안의 스크립트는 <BODY> 태그 안의 텍스트보다 먼저 해석됩니다. 따라서 <BODY> 태그에서 만들어지는 개체는 브라우저에서 <HEAD> 요소를 구문 분석할 때는 존재하지 않으므로 스크립트에서 조작할 수 없습니다.

참고:

이러한 동작은 Internet Explorer에만 해당됩니다. ASP와 WSH의 실행 모델은 다른 호스트와 마찬가지로 다릅니다.

자동 형식 강제 변환

JScript는 자동 강제 변환이 가능한 비교적 자유로운 형식의 언어입니다. 따라서 형식이 다르면 값도 달라야 함에도 불구하고 다음 예제 식의 결과는 true입니다.

"100" == 100;
false == 0;

형식과 값이 모두 같은지 확인하려면 완전 같음 연산자(===)를 사용합니다. 다음은 모두 false입니다.

"100" === 100;
false === 0;

연산자 우선 순위

식을 평가하는 동안 연산을 실행하는 순서는 식에서 연산자가 사용된 순서보다 연산자 우선 순위에 의해 결정됩니다. 따라서 다음 예제에서는 빼기 연산자가 곱하기 연산자보다 먼저 나오지만 곱셈이 뺄셈보다 먼저 수행됩니다.

theRadius = aPerimeterPoint - theCenterpoint * theCorrectionFactor;

자세한 내용은 연산자 우선 순위를 참조하십시오.

개체에 for...in 루프 사용

for…in 루프를 사용하여 스크립트에서 개체의 속성을 단계적으로 수행할 때는 개체 필드가 루프 카운터 변수에 할당되는 순서를 반드시 예측할 수 있거나 제어할 수 있는 것은 아닙니다. 언어의 구현 방법에 따라서도 그 순서가 달라질 수 있습니다. 자세한 내용은 for...in 문을 참조하십시오.

with 키워드

with 키워드는 지정된 개체에 이미 존재하는 속성을 처리하는 데는 편리하지만 개체에 속성을 추가하는 데에는 사용할 수 없습니다. 개체에서 새로운 속성을 만들려면 개체를 명확하게 참조해야 합니다. 자세한 내용은 with 문을 참조하십시오.

this 키워드

this 키워드는 개체의 정의 내에 있지만 함수가 개체 정의가 아닌 경우에는 this 또는 비슷한 키워드를 현재 실행 중인 함수를 참조하는 데 사용할 수 없습니다. 함수를 개체에 메서드로 할당하는 경우에는 함수 내에서 this 키워드를 사용하여 개체를 참조할 수 있습니다. 자세한 내용은 this 문을 참조하십시오.

Internet Explorer 또는 ASP.NET에서 스크립트를 작성하는 스크립트 작성하기

인터프리터에서 </SCRIPT> 태그를 발견하면 현재 스크립트가 종료됩니다. "</SCRIPT>" 자체를 표시하려면 "</SCR"과 "IPT>" 처럼 두 개 이상의 문자열로 작성하고 스크립트에서 이를 작성하는 문을 사용하여 연결합니다.

Internet Explorer에서 암시적 창 참조

두 개 이상의 창이 동시에 열릴 수 있기 때문에 암시적 창 참조는 현재 창을 가리킵니다. 다른 창에 대해서는 명시적 참조를 사용해야 합니다.

참고 항목

작업

Visual Studio를 사용하여 JScript 작성

개념

Visual Studio를 사용하여 JScript 디버깅

기타 리소스

JScript 코드 작성, 컴파일 및 디버깅