CFScript es una extensión de CFML en la plataforma ColdFusion. CFScript se asemeja a JavaScript . Algunos desarrolladores de ColdFusion lo prefieren porque tiene menos complejidad visual y tipográfica que el CFML convencional.
Uso
A menos que se trate de un componente ColdFusion basado exclusivamente en scripts, todo el código CFScript debe estar contenido dentro de un par de etiquetas CFScript de la siguiente manera:
<cfscript> xParam = 115 ; yParam = 200 ; color = 'FFCC99' ; </cfscript>Un ejemplo sencillo de una función :
<cfscript> function Sum ( a , b ) { var sum = a + b ; return sum ; } </cfscript>Un ejemplo sencillo de un componente en CFScript, que contiene dos funciones:
componente { public void function foo () { WriteOutput ( "Método foo() llamado<br/>" ); }función pública obtenerCadena () { var x = "hola" ; return x ; } }ColdFusion 11, Railo 4.1+ y Lucee 4.5+ se esfuerzan por brindar soporte completo a las etiquetas cf en CFScript. Si bien puede que no existan sustituciones directas para todas las etiquetas, a menudo es posible lograr los resultados de una etiqueta en script, pero mediante una sintaxis diferente. Por ejemplo, así es como se obtiene una consulta en una variable en CFSCRIPT sin escribir una UDF :
<cfscript> qGetData = new Query (); qGetData.setDataSource ( '#Application.datasource#' ); qGetData.setSQL ( 'SELECT column1, column2 FROM table WHERE 1' ); qDateResult = qGetData.Execute (). getResult (); </cfscript>Sintaxis
Desde ColdFusion 8, CFScript ha admitido abreviaturas de sintaxis que son comunes en muchos otros lenguajes de programación, como "++", "<=" y "+=". [ 1 ]
Operadores aritméticos
Comentarios
CFScript tiene dos tipos de comentarios: de una sola línea y de varias líneas.
// Este es un comentario de una sola línea. // Este es un segundo comentario de una sola línea./* Este es un comentario de varias líneas. No es necesario comenzar cada línea con un indicador de comentario. Esta línea es la última del comentario. */Intentar/atrapar
try { throw ( message = "Ups" , detail = "xyz" ); } catch ( any e ) { WriteOutput ( "Error: " & e . message ); rethrow ; } finally { WriteOutput ( "Me ejecuto aunque no haya ningún error" ); }Sentencia switch
switch ( car ) { case "Nissan" : WriteOutput ( "Tengo un Nissan" ); break ; case "Toyota" : WriteOutput ( "Tengo un Toyota" ); break ; default : WriteOutput ( "Soy exótico" ); }Bucle
Bucle for
for ( i = 1 ; i <= ArrayLen ( array ); i = i + 1 ) { WriteOutput ( array [ i ]); }PARA EN Bucle
struct = StructNew (); struct.one = "1" ; struct.two = " 2 " ; for ( key in struct ) { WriteOutput ( key ) ; } // SALIDA onetwoBucle while
x = 0 ; mientras ( x < 5 ) { x = x + 1 ; WriteOutput ( x ); } // Salida: 12345Bucle do/while
x = 0 ; hacer { x = x + 1 ; WriteOutput ( x ); } mientras ( x <= 0 ); // Salida: 1Iterar sobre un array
para ( elemento en array ) { hacerAlgo ( elemento ); }Diferencias con JavaScript
Aunque CFScript y JavaScript son similares, presentan varias diferencias clave. La siguiente lista identifica las características de CFScript que difieren de JavaScript:
- CFScript utiliza expresiones de ColdFusion , que no son un superconjunto ni un subconjunto de las expresiones de JavaScript. En particular, las expresiones de ColdFusion no admiten operadores bit a bit , y el operador MOD o % de ColdFusion funciona de manera diferente al operador % correspondiente de JavaScript: en ColdFusion, el operador realiza aritmética de enteros e ignora las partes fraccionarias. Las expresiones de ColdFusion también admiten los operadores EQV, IMP, CONTAINS y DOES NOT CONTAIN, que no son compatibles con JavaScript.
- Las declaraciones de variables (palabra clave var) solo se utilizan en funciones y subprocesos definidos por el usuario.
- CFScript no distingue entre mayúsculas y minúsculas.
- Todas las instrucciones terminan con un punto y coma, y los saltos de línea en el código se ignoran.
- Las asignaciones son enunciados, no expresiones, y por lo tanto no pueden utilizarse en situaciones que requieran evaluar la operación de asignación.
- Los objetos JavaScript, como
windowydocument, no están disponibles. - Solo el servidor ColdFusion procesa CFScript. No existe CFScript del lado del cliente.
Referencias
- ↑ Nadel, Ben (31 de mayo de 2007). "Aprendiendo ColdFusion 8: ¡Viva el nuevo operador ++!" .
Enlaces externos
- Ampliación de páginas ColdFusion con secuencias de comandos CFML - Adobe