About CFScript

CFScript is a language within a language. It is a scripting language that is like JavaScript but is simpler to use. Also, unlike JavaScript, CFScript only runs on the ColdFusion server; it does not run on the client system. CFScript code can use all the ColdFusion functions and expressions, and has access to all ColdFusion variables that are available its scope.
CFScript provides a compact and efficient way to write ColdFusion logic. Typical uses of CFScript include the following:

  • Simplifying and speeding variable setting
  • Building compact JavaScript-like flow control structures
  • Creating user-defined functions
    Because you use functions and expressions directly in CFScript, you do not have to surround each assignment or function in a  cfset  tag. Also, CFScript assignments are often faster than  cfset  tags.
    CFScript provides a set of decision and flow-control structures that are more familiar than ColdFusion tags to most programmers.
    In addition to variable setting, other operations tend to be slightly faster in CFScript than in tags.
    You can use CFScript to create user-defined functions, or UDFs (also known as custom functions). You call UDFs in the same manner that you call standard ColdFusion functions. UDFs are to ColdFusion built-in functions what custom tags are to ColdFusion built-in tags. Typical uses of UDFs include data manipulation and mathematical calculation routines.
    You cannot include ColdFusion tags in CFScript. However, some functions and CFScript statements are equivalent to commonly used tags. For more information, see Tag equivalents in CFScript in Language Enhancements in ColdFusion 9.

Comparing tags and CFScript

The following examples show how you can use CFML tags and CFScript to do the same thing. Each example takes data submitted from a form and places it in a structure; if the form does not have a last name and department field, it displays a message.

Using CFML tags

<cfif IsDefined("Form.submit")> 
<cfif (Form.lastname NEQ "") AND (Form.department NEQ "")> 
<cfset employee=structnew()> 
<cfset employee.firstname=Form.firstname> 
<cfset employee.lastname=Form.lastname> 
<cfset employee.email=Form.email> 
<cfset employee.phone=Form.phone> 
<cfset employee.department=Form.department> 
<cfoutput> 
Adding #Form.firstname# #Form.lastname#<br> 
</cfoutput> 
<cfelse> 
<cfoutput> 
You must enter a Last Name and Department.<br> 
</cfoutput> 
</cfif> 
</cfif>
Using CFScript
<cfscript> 
if (IsDefined("Form.submit")) { 
if ((Form.lastname NEQ "") AND (Form.department NEQ "")) { 
employee=StructNew(); 
employee.firstname=Form.firstname; 
employee.lastname=Form.lastname; 
employee.email=Form.email; 
employee.phone=Form.phone; 
employee.department=Form.department; 
WriteOutput("Adding #Form.firstname# #Form.lastname# <br>"); 
} 
else 
WriteOutput("You must enter a Last Name and Department.<br>"); 
} 
</cfscript>

Get help faster and easier

New user?