CFScript

CFScript

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는 없다.

참조

  1. ^ Nadel, Ben (May 31, 2007). "Learning ColdFusion 8: All Hail The New ++ Operator".

외부 링크