CFScript - CFScript
tento článek potřebuje další citace pro ověření.Listopadu 2006) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
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átor | Popis |
---|---|
+ - * / | 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
adokument
, nejsou k dispozici. - CFScript zpracovává pouze server ColdFusion. Na straně klienta neexistuje žádný CFScript.
Reference
- ^ Nadel, Ben (31. května 2007). „Learning ColdFusion 8: All Hail The New ++ Operator“.