세 가지 문(함수) Eval, Execute 및 ExecuteGlobal은 모두 문자열 표현식을 실행하지만 서로 다릅니다. Eval은 표현식을 평가하고 결과를 반환합니다.
구문: [결과 = ]eval_r(표현식_r)
Expression_r은 유효한 VBScript 표현식의 문자열입니다.
예:
다음과 같이 코드 코드를 복사합니다.
response.Write(eval_r(3+2)) '출력 5
3+2는 따옴표로 묶어서 문자열임을 나타내지만 Eval의 눈에는 표현식 3+2로 실행됩니다.
Execute는 하나 이상의 지정된 문을 실행합니다. 여러 명령문을 구분하려면 콜론(:)을 사용하십시오.
구문:문 실행
예:
response.Write(abc) 실행 'abc 출력
코드 복사
response.Write(abc)는 문자열을 나타내기 위해 따옴표로 묶입니다.
하지만 Execute의 관점에서는 response.Write(abc) 명령문으로 실행됩니다.
ExecuteGlobal은 전역 네임스페이스에서 하나 이상의 지정된 문을 실행합니다.
구문:ExecuteGlobal 문
예:
다음과 같이 코드 코드를 복사합니다.
희미한 c
c = 전역 변수
하위 S1()
희미한 c
c = 지역 변수
response.Write(c) '지역 변수 출력을 실행합니다.
ExecuteGlobal response.Write(c) '전역 변수 출력
서브 끝
response.Write(c) '전역 변수 출력' 실행
S1()에 전화하세요
변수 c는 전역 범위와 함수 범위 모두에서 정의됩니다. Execute는 위치에 따라 지역 변수 또는 전역 변수를 사용하도록 결정하는 반면 ExecuteGlobal은 항상 전역 범위에서 c만 인식합니다.
요약:
Eval은 하나의 문만 실행합니다. 문은 값을 반환할 수도 있고 반환하지 않을 수도 있습니다.
Execute는 명령문의 반환 값을 무시하고 하나 이상의 명령문을 실행합니다.
ExecuteGlobal은 하나 이상의 명령문을 실행하고 명령문의 반환 값을 무시합니다. 전역 변수와 지역 변수의 이름이 같으면 항상 전역 변수가 사용됩니다.
알아채다:
VBScript에서 =는 할당 및 비교에 사용됩니다. 예를 들어 a=b는 b의 값을 a에 할당한다고 말할 수 있고, 따라서 eval_r(a=도 마찬가지입니다. b) 할당 또는 비교 작업을 나타냅니까?
여기에는 관례가 있습니다. Eval에서 a=b는 항상 비교 연산을 의미하고 Execute 및 ExecuteGlobal에서는 항상 할당을 의미합니다.