CFScript - CFScript

CFScript je příponou CFML na platformě ColdFusion. CFScript se podobá JavaScript. Nějaká ColdFusion vývojáři raději, protože má menší vizuální a typografickou režii než běžné CFML.[je zapotřebí objasnění ]

Používání

Doporučuje se psát komponenty ColdFusion a veškerou obchodní logiku do jazyka CFScript a používat je CFML pouze v souborech .cfm mezi HTML.

Pokud to není součástí komponenty ColdFusion založené na čistém skriptu, musí být veškerý kód CFScript obsažen v páru značek CFScript následujícím způsobem:

<cfscript>    xParam = 115;    yParam = 200;    barva = 'FFCC99';</cfscript>

Jednoduchý příklad a funkce:

<cfscript>funkce Součet(A, b) {    var součet = A + b;    vrátit se součet;}</cfscript>

Jednoduchý příklad komponenty v CFScript, obsahující dvě funkce:

součástka {    veřejnost prázdnota funkce foo() {        WriteOutput(„Metoda foo () s názvem 
); } veřejnost funkce getString() { var X = "Ahoj"; vrátit se X; }}

ColdFusion 11, Railo 4.1+ a Lucee 4.5+ oba dělají vše pro to, aby plně podporovali tagy CF v CFScript. I když nemusí existovat přímé substituce všech tagů, je často stále možné dosáhnout výsledků tagu ve skriptu, ale pomocí jiné syntaxe. Takto například můžete získat dotaz do proměnné v CFSCRIPT bez zápisu a UDF:

<cfscript>    qGetData = Nový Dotaz();    qGetData .setDataSource('# APPLICATION.datasource #');    qGetData .setSQL('VYBRAT sloupec1, sloupec2 Z tabulky WHERE 1');    qDateResult = qGetData .Vykonat().getResult();</cfscript>

Syntax

Od verze ColdFusion 8 podporuje CFScript syntax zkratky, které jsou běžné v mnoha jiných programovacích jazycích, například „++“, „<=“ a „+ =“.[1]

Aritmetické operátory

OperátorPopis
+ - * /Základní aritmetika: Sčítání, odčítání, násobení a dělení.

V rozdělení nemůže být pravý operand nulový.

++ --Přírůstek a úbytek. Zvýšení nebo snížení proměnné o jednu.

Tyto operátory lze použít pro předběžné zvýšení nebo snížení (jako v x = ++ i), kde se proměnná před použitím ve výrazu změní. Lze je také použít pro přírůstek nebo zmenšení (jako v x = i ++), kde se hodnota po použití ve výrazu změní. Pokud je hodnota proměnné i zpočátku 7, například hodnota x v x = ++ i je 8 po vyhodnocení výrazu, ale v x = i ++ je hodnota x 7. V obou případech je hodnota i se stane 8.

Tyto operátory nelze použít s výrazy, které zahrnují funkce, jako v f (). A ++. Můžete také použít výraz jako - ++ x, ale --- x a +++ x způsobují chyby, protože jejich významy jsou nejednoznačné. K seskupení operátorů můžete použít závorky, například v - (- x) nebo + (++ x).

+= -= *= /= %=Složené operátory přiřazení. Proměnná vpravo se používá jako prvek ve výrazu i jako proměnná výsledku. Výraz a + = b je tedy ekvivalentní výrazu a = a + b.

Výraz může mít pouze jednoho operátora složeného přiřazení.

+ -Unární aritmetika: Nastavte znaménko čísla.
MOD nebo%Modul: Vraťte zbytek poté, co je číslo rozděleno dělitelem. Výsledek má stejné znaménko jako dělitel. Hodnota napravo od operátoru by měla být celé číslo; použití nečíselné hodnoty způsobí chybu a pokud zadáte skutečné číslo, ColdFusion ignoruje zlomkovou část (například 11 MOD 4.7 je 3).
Celé dělení: Vydělte celé číslo jiným celým číslem. Výsledkem je také celé číslo; například 94 je 2. Pravý operand nemůže být nula
^Exponentiace: Vrátí výsledek zvýšeného čísla na mocninu (exponent). Pomocí stříška (^) oddělte číslo od síly; například 2 ^ 3 je 8. Reálná a záporná čísla jsou povolena pro základ i exponent. Jakýkoli výraz, který se rovná imaginárnímu číslu, například -1 ^ .5, má však za následek řetězec „-1. # IND. ColdFusion nepodporuje imaginární ani komplexní čísla.

Komentáře

CFScript má dvě formy komentářů: jednořádkový a víceřádkový.

// Toto je jednořádkový komentář.// Toto je druhý jednořádkový komentář.
/ * Toto je víceřádkový komentář.   Nemusíte začínat každý řádek indikátorem komentáře.   Tento řádek je posledním řádkem v komentáři. * /

Zkus chytit

Snaž se {    házet(zpráva=„Jejda“, detail="xyz");} chytit (žádný E) {    WriteOutput(„Chyba:“ & E.zpráva);    rethrow;} Konečně {    WriteOutput("Spustím, i když žádná chyba");}

Přepnout prohlášení

přepínač (auto) {    případ „Nissan“:         WriteOutput(„Vlastním Nissan“);         přestávka;    případ „Toyota“:         WriteOutput(„Vlastním Toyota“);         přestávka;    výchozí:         WriteOutput(„Jsem exot“);}

Opakování

Pro smyčku

pro (i=1; i LTE ArrayLen(pole); i=i+1) {    WriteOutput(pole[i]);}

FOR IN Loop

struktur = StructNew();struktur.jeden = "1";struktur.dva = "2";pro (klíč v struktur) {    WriteOutput(klíč);}// VÝSTUPY onetwo

Zatímco Loop

X = 0;zatímco (X LT 5) {    X = X + 1;    WriteOutput(X);}// Výstupy: 12345

Smyčka Do / While

X = 0;dělat {    X = X+1;    WriteOutput(X);} zatímco (X LTE 0);// Výstupy: 1

Smyčka nad polem

pro (položka v pole) {    dělej něco(položka);}

Rozdíly od JavaScriptu

Přestože jsou CFScript a JavaScript podobné, mají několik klíčových rozdílů. Následující seznam uvádí funkce CFScript, které se liší od JavaScriptu:

  • CFScript používá ColdFusion výraz, které nejsou nadmnožinou ani podmnožinou výrazů JavaScriptu. Zejména výrazy ColdFusion nepodporují bitové operátory a operátor ColdFusion MOD nebo% pracuje odlišně od odpovídajícího operátoru% JavaScript: Ve ColdFusion operátor provádí celočíselnou aritmetiku a ignoruje zlomkové části. Výrazy ColdFusion také podporují operátory EQV, IMP, CONTAINS a NEOBSAHUJÍ, které nejsou podporovány v JavaScriptu.
  • Proměnná prohlášení (klíčové slovo var) se používají pouze v uživatelsky definovaných funkcích a vláknech.
  • CFScript nerozlišuje velká a malá písmena.
  • Všechny příkazy končí středníkem a konce řádků v kódu jsou ignorovány.
  • Přiřazení jsou příkazy, nikoli výrazy, a proto je nelze použít v situacích, které vyžadují vyhodnocení operace přiřazení.
  • Objekty JavaScriptu, například okno a dokument, nejsou k dispozici.
  • CFScript zpracovává pouze server ColdFusion. Na straně klienta neexistuje žádný CFScript.

Reference

  1. ^ Nadel, Ben (31. května 2007). „Learning ColdFusion 8: All Hail The New ++ Operator“.

externí odkazy