CFScript - CFScript

CFScript on CFML- laajennus ColdFusion-alustalla. CFScript muistuttaa JavaScriptiä . Jotkut ColdFusion-kehittäjät pitävät sitä parempana, koska siinä on vähemmän visuaalisia ja typografisia piirteitä kuin tavallisessa CFML: ssä.

Käyttö

Paras tapa on kirjoittaa ColdFusion Components ja kaikki liiketoimintalogiikat CFScript-muodossa ja käyttää CFML- tiedostoa vain .cfm-tiedostoissa HTML: ään .

Kaikkien CFScript-koodien on oltava CFScript-tunnisteparin sisällä seuraavasti, paitsi jos ne ovat puhtaassa komentosarjapohjaisessa ColdFusion-komponentissa.

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

Yksinkertainen esimerkki toiminnosta :

<cfscript>
function Sum(a, b) {
    var sum = a + b;
    return sum;
}
</cfscript>

Yksinkertainen esimerkki CFScript-komponentista, joka sisältää kaksi toimintoa:

component {
    public void function foo() {
        WriteOutput("Method foo() called<br/>");
    }

    public function getString() {
        var x = "hello";
        return x;
    }
}

ColdFusion 11, Railo 4.1+ ja Lucee 4.5+ tekevät molemmat parhaansa tukeakseen CFF-tiedostojen täydellisiä cf-tunnisteita. Vaikka kaikille tunnisteille ei ehkä ole suoraa korvaamista, on usein silti mahdollista saavuttaa tunnisteen tulokset komentosarjalla, mutta eri syntaksin kautta. Esimerkiksi näin saadaan kysely muuttujaan CFSCRIPT kirjoittamatta UDF : tä:

<cfscript>
    qGetData = new Query();
    qGetData .setDataSource('#APPLICATION.datasource#');
    qGetData .setSQL('SELECT column1, column2 FROM table WHERE 1');
    qDateResult = qGetData .Execute().getResult();
</cfscript>

Syntaksi

ColdFusion 8: n jälkeen CFScript on tukenut syntaksi lyhenteitä, jotka ovat yleisiä monissa muissa ohjelmointikielissä, kuten "++", "<=" ja "+ =".

Aritmeettiset operaattorit

operaattori Kuvaus
+ - * / Peruslaskutoimitus: Liittäminen, vähentäminen, kertoaminen ja jakaminen.

Jaottelussa oikea operandi ei voi olla nolla.

++ - Lisäys ja vähennys. Suurenna tai pienennä muuttujaa yhdellä.

Näitä operaattoreita voidaan käyttää ennakkoon lisäämiseen tai pienentämiseen (kuten x = ++ i), missä muuttujaa muutetaan ennen kuin sitä käytetään lausekkeessa. Niitä voidaan käyttää myös lisäyksen lisäämiseen tai pienentämiseen (kuten x = i ++), missä arvo muuttuu sen jälkeen, kun sitä käytetään lausekkeessa. Jos muuttujan i arvo on alun perin esimerkiksi 7, x: n arvo x = ++ i: ssä on lausekkeen arvioinnin jälkeen 8, mutta x = i ++: ssa x: n arvo on 7. Molemmissa tapauksissa minusta tulee 8.

Näitä operaattoreita ei voida käyttää lausekkeisiin, joihin liittyy funktioita, kuten f (). A ++. Voit myös käyttää lauseketta, kuten - ++ x, mutta --- x ja +++ x aiheuttavat virheitä, koska niiden merkitys on epäselvä. Voit käyttää sulkeita operaattorien ryhmittelemiseen, kuten - (- x) tai + (++ x).

+ = - = * = / =% = Yhdistelmäoperaattorit. Oikealla olevaa muuttujaa käytetään sekä elementtinä lausekkeessa että tulosmuuttujana. Siten lauseke a + = b vastaa a = a + b.

Lausekkeessa voi olla vain yksi yhdistelmämääritysoperaattori.

+ - Yhtenäinen aritmeettinen: Aseta luvun merkki.
MOD tai% Modulus: Palauta loput sen jälkeen, kun luku on jaettu jakajalla. Tuloksella on sama merkki kuin jakajalla. Operaattorin oikealla puolella olevan arvon tulisi olla kokonaisluku; Ei-numeerisen arvon käyttäminen aiheuttaa virheen, ja jos määrität todellisen luvun, ColdFusion jättää huomioimatta murto-osan (esimerkiksi 11 MOD 4.7 on 3).
\ Kokonaislukujako: Jaa kokonaisluku toisella kokonaisluvulla. Tulos on myös kokonaisluku; esimerkiksi 9 \ 4 on 2. Oikea operandi ei voi olla nolla
^ Eksponentraatio: Palauta tehosta nostetun luvun tulos (eksponentti). Käytä caret-merkkiä (^) erottaaksesi numeron virrasta; esimerkiksi 2 ^ 3 on 8. Todelliset ja negatiiviset numerot ovat sallittuja sekä kannalle että eksponentille. Kuitenkin mikä tahansa lauseke, joka vastaa kuvitteellista lukua, kuten -1 ^ .5, johtaa merkkijonoon "-1. # IND. ColdFusion ei tue kuvitteellisia tai kompleksisia numeroita.

Kommentit

CFScriptillä on kaksi kommenttimuotoa: yhden rivin ja monilinjan.

// This is a single-line comment.
// This is a second single-line comment.
/* This is a multiline comment.
   You do not need to start each line with a comment indicator.
   This line is the last line in the comment. */

Yritä saada kiinni

try {
    throw(message="Oops", detail="xyz");
} catch (any e) {
    WriteOutput("Error: " & e.message);
    rethrow;
} finally {
    WriteOutput("I run even if no error");
}

Vaihda lausunto

switch (car) {
    case "Nissan":
         WriteOutput("I own a Nissan");
         break;
    case "Toyota":
         WriteOutput("I own a Toyota");
         break;
    default:
         WriteOutput("I'm exotic");
}

looping

Loopille

for (i=1; i LTE ArrayLen(array); i=i+1) {
    WriteOutput(array[i]);
}

FOR IN Loop

struct = StructNew();
struct.one = "1";
struct.two = "2";
for (key in struct) {
    WriteOutput(key);
}
//OUTPUTS onetwo

Vaikka silmukka

x = 0;
while (x LT 5) {
    x = x + 1;
    WriteOutput(x);
}
// Outputs: 12345

Tee / kun silmukka

x = 0;
do {
    x = x+1;
    WriteOutput(x);
} while (x LTE 0);
// Outputs: 1

Silmukointi ryhmän yli

for (item in array) {
    doSomething(item);
}

Eroa JavaScriptiin

Vaikka CFScript ja JavaScript ovat samankaltaiset, niillä on useita keskeisiä eroja. Seuraava luettelo identifioi CFScriptin ominaisuudet, jotka eroavat JavaScriptista:

  • CFScript käyttää ColdFusion-lausekkeita, jotka eivät ole JavaScript-lausekkeiden ylä- tai alajoukkoja. Erityisesti ColdFusion-lausekkeet eivät tue bittioperaattoreita, ja ColdFusion MOD tai% -operaattori toimii eri tavalla kuin vastaava JavaScript% -operaattori: ColdFusionissa operaattori suorittaa kokonaislukuaritmeettista arvoa ja jättää murto-osat. ColdFusion-lausekkeet tukevat myös EQV: tä, IMP: tä, SISÄLTÄÄ, JA EI SISÄLLÄ operaattoreita, joita JavaScript ei tue.
  • Muuttuvia ilmoituksia (var-avainsana) käytetään vain käyttäjän määrittelemissä toiminnoissa ja säikeissä.
  • CFScript ei ole kirjainkoko.
  • Kaikki lauseet päättyvät puolipisteellä, ja koodin rivinvaihdot jätetään huomioimatta.
  • Tehtävät ovat lauseita, ei lausekkeita, joten niitä ei voida käyttää tilanteissa, joissa vaaditaan toimeksiannon arviointi.
  • JavaScript-objektit, kuten windowja document, eivät ole käytettävissä.
  • Vain ColdFusion-palvelin käsittelee CFScriptiä. Asiakaspuolen CFcriptiä ei ole.

Viitteet

Ulkoiset linkit