CFScript
CFScript이 글은 검증을 위해 인용구가 추가로 필요하다. – · · · · (2006년 11월) (이 과 시기 |
CFScript는 ColdFusion 플랫폼에서 CFML의 확장이다.CFScript는 JavaScript와 유사하다.일부 콜드퓨전 개발자는 일반 CFML보다 시각적, 인쇄적 오버헤드가 적어 선호한다.[clarification needed]
사용법
CFScript로 ColdFusion Components 및 모든 비즈니스 로직을 작성하고 HTML 중 .cfm 파일에서만 CFML을 사용하는 것이 모범 사례로 여겨진다.
순수한 스크립트 기반 ColdFusion 구성 요소 내에 있지 않는 한, 모든 CFScript 코드는 다음과 같이 CFScript 태그 쌍 내에 포함되어야 한다.
<cfscript> xParam = 115; yparam = 200; 색을 칠하다 = 'FFCC99'; </cfscript>
함수의 간단한 예:
<cfscript> 기능을 하다 합계(a, b) { 시합을 하다 합계를 내다 = a + b; 돌아오다 합계를 내다; } </cfscript>
CFScript에서 두 가지 함수를 포함하는 구성 요소의 간단한 예:
구성 요소 { 공중의 공허하게 하다 기능을 하다 foo() { WriteOutput("메소드 푸()가 전화를 걸었다."); } 공중의 기능을 하다 getString() { 시합을 하다 x = "안녕"; 돌아오다 x; } }
ColdFusion 11, Railo 4.1+, Lucee 4.5+ 모두 CFScript에서 cf 태그를 완벽하게 지원하기 위해 최선을 다한다.모든 태그에 대한 직접적인 대체는 없을 수 있지만, 여전히 스크립트에서 태그의 결과를 얻을 수 있는 경우가 많지만, 다른 구문을 통해서도 가능하다.예를 들어, UDF를 작성하지 않고 CFSCRIPT의 변수에 쿼리를 가져오는 방법은 다음과 같다.
<cfscript> qGetData = 새로운 질의(); qGetData .setDataSource('#APPLICATION.dataasource#'); qGetData .setSQL('열1, 열2 FROM 표 WHERE 1 선택'); qDateResult = qGetData .실행().getResult(); </cfscript>
구문
CFScript는 ColdFusion 8 이후 "+", "<=", "+="[1]와 "+="와 같은 많은 다른 프로그래밍 언어에서 공통적인 구문 약어를 지원해왔다.
산술 연산자
연산자 | 설명 |
---|---|
+ - * / | 기본 산술:덧셈, 뺄셈, 곱셈, 나눗셈. 분할할 때, 오른쪽 피연산자는 0이 될 수 없다. |
++ -- | 증가 및 감소.변수를 하나씩 늘리거나 줄이십시오. 이러한 연산자는 (x = ++ i와 같이) 사전 증감 또는 감소에 사용할 수 있으며, 여기서 변수는 표현에 사용하기 전에 변경된다.또한 후증가 또는 감소(x = i++와 같이)에도 사용할 수 있으며, 여기서 값은 식에서 사용한 후에 변경된다.예를 들어 변수 i의 값이 초기 7이면, 식 평가 후 x = ++i의 x 값은 8이지만 x=i++의 경우 x의 값은 7이다.두 경우 모두 i의 가치는 8이 된다. 이러한 연산자는 f().a++에서와 같이 함수를 포함하는 표현식으로는 사용할 수 없다.또한 -+x와 같은 표현도 사용할 수 있지만 --x와 ++x는 의미가 모호하기 때문에 오류를 일으킨다.그러나 -(--x) 또는 +(+x)와 같이 괄호를 사용하여 연산자를 그룹화할 수 있다. |
+= -= *= /= %= | 복합 할당 연산자.오른쪽 변수는 식과 결과 변수에서 모두 요소로 사용된다.따라서 +=b라는 표현은 a = a +b와 같다. 식에는 하나의 복합 할당 연산자만 있을 수 있다. |
+ - | 단항 산술:숫자의 기호를 설정한다. |
MOD 또는 % | 계량:숫자를 구분자로 나눈 후 나머지를 반환하십시오.결과는 점괘와 같은 기호를 가지고 있다.연산자 오른쪽에 있는 값은 정수여야 한다. 숫자가 아닌 값을 사용하면 오류가 발생하며, 실제 숫자를 지정하면 콜드퓨전(ColdFusion)이 부분 부분을 무시한다(예: 11 MOD 4.7은 3이다). |
\ | 정수 구분:정수를 다른 정수로 나눈다.결과도 정수다. 예를 들어 9\4는 2이다.오른쪽 피연산자는 0일 수 없음 |
^ | 지수:한 번 올린 숫자의 결과를 전원(초과)으로 되돌리십시오.캐럿 문자(^)를 사용하여 숫자를 전원에서 분리하십시오. 예를 들어 2^3은 8입니다.실제와 음수는 베이스와 지수에 모두 허용된다.그러나, 상상의 숫자와 동일한 표현, 그러한 -1^.5는 문자열 "-1.#"을 낳는다.IND. ColdFusion은 가상 또는 복잡한 숫자를 지원하지 않는다. |
평.
CFScript에는 단일 행과 다중 행의 두 가지 형태의 코멘트가 있다.
// 이것은 한 줄의 논평이다. // 이것은 두 번째 단일 줄 코멘트다.
/* 이것은 여러 줄의 코멘트다. 각 행을 주석 표시기로 시작할 필요는 없다. 이 대사가 댓글의 마지막 줄이다.*/
시도/채우기
해보다 { 던지다(메세지="웁스", 세세히="xyz"); } 잡히다 (아무 것이나 e) { WriteOutput("오류: " & e.메세지); 다시 던지다; } 종국에는 { WriteOutput("오류가 없더라도 나는 뛴다.); }
스위치 문
바꾸다 (자동차) { 케이스 "니산": WriteOutput("나는 닛산을 소유하고 있다"); 부숴뜨리다; 케이스 "토요타": WriteOutput("나는 도요타를 소유하고 있다"); 부숴뜨리다; 체납: WriteOutput("나는 이국적이다."); }
루핑
For Loop
을 위해 (i=1; i LTE 배열렌(배열하다); i=i+1) { WriteOutput(배열하다[i]); }
FOR IN 루프
구조상의 = 구조체신규(); 구조상의.하나 = "1"; 구조상의.두 개 = "2"; 을 위해 (핵심을 에 구조상의) { WriteOutput(핵심을); } //출력 onetwo
While Loop
x = 0; 하는 동안에 (x LT 5) { x = x + 1; WriteOutput(x); } // 출력: 12345
작업 / 루프 중
x = 0; 하다 { x = x+1; WriteOutput(x); } 하는 동안에 (x LTE 0); // 출력: 1
배열 루핑
을 위해 (항목 에 배열하다) { 어떻게 좀 해봐.(항목); }
JavaScript와의 차이점
CFScript와 JavaScript는 유사하지만 몇 가지 주요 차이점이 있다.다음 목록은 JavaScript와 다른 CFScript 기능을 식별한다.
- CFScript는 JavaScript 표현식의 상위 집합이나 하위 집합이 아닌 콜드퓨전 식을 사용한다.특히 콜드퓨전 표현식은 비트 연산자를 지원하지 않으며 콜드퓨전 MOD 또는 % 연산자는 해당 자바스크립트 % 연산자와 다르게 동작한다.콜드퓨전에서는 연산자가 정수 산수를 하고 부분적인 부분은 무시한다.콜드퓨전 표현식은 또한 EQV, IMM, CONTH 및 JavaScript에서 지원되지 않는 연산자를 포함하지 않는다.
- 변수 선언(var 키워드)은 사용자 정의 함수 및 스레드에서만 사용된다.
- CFScript는 대소문자를 구분하지 않는다.
- 모든 문장은 세미콜론으로 끝나고, 코드의 줄 바꿈은 무시된다.
- 할당은 표현이 아닌 문장이기 때문에 과제 연산을 평가해야 하는 상황에서는 사용할 수 없다.
- JavaScript 개체(예:
window
그리고document
는 사용할 수 없다. - CFScript는 ColdFusion 서버만 처리한다.클라이언트측 CFScript는 없다.
참조
- ^ Nadel, Ben (May 31, 2007). "Learning ColdFusion 8: All Hail The New ++ Operator".