CFScript - CFScript
CFScript bir uzantısıdır CFML ColdFusion platformunda. CFScript benzeyen JavaScript . Sıradan CFML daha az görsel ve tipografik yüke sahiptir çünkü bazı ColdFusion geliştiricileri tercih ediyorum.
içindekiler
kullanım
Bu ColdFusion Bileşenleri ve CFScript tüm iş mantığını yazmak için ve kullanımı en iyi uygulama olarak kabul edilir CFML arasında sadece .cfm dosyalarda HTML .
o saf script tabanlı ColdFusion Bileşeni kapsamında olmadığı sürece, aşağıdaki gibi tüm CFScript kodu CFScript etiketi çifti içinde yer almalıdır.
<cfscript>
xParam = 115;
yParam = 200;
color = 'FFCC99';
</cfscript>
Bir basit bir örnek işlevi :
<cfscript>
function Sum(a, b) {
var sum = a + b;
return sum;
}
</cfscript>
iki işlev içeren CFScript bir bileşeni, basit bir örnek:
component {
public void function foo() {
WriteOutput("Method foo() called<br/>");
}
public function getString() {
var x = "hello";
return x;
}
}
ColdFusion 11 Railo 4.1+ ve Lucee 4.5+ hem tam CFScript içinde cf etiketlerini desteklemek için ellerinden geleni yapıyorlar. Tüm etiketler için direkt değiştirmelerin olmayabilir de, senaryoda bir etiket sonuçları elde etmek çoğu zaman hala mümkündür, ancak farklı bir sözdizimi yoluyla. Örneğin, bu bir yazmadan CFSCRIPT bir değişkene bir sorgu nasıl olduğunu UDF :
<cfscript>
qGetData = new Query();
qGetData .setDataSource('#APPLICATION.datasource#');
qGetData .setSQL('SELECT column1, column2 FROM table WHERE 1');
qDateResult = qGetData .Execute().getResult();
</cfscript>
Sözdizimi
ColdFusion 8, CFScript böyle "++", "<=" ve "+ =" gibi diğer birçok programlama dillerinde ortak olan sözdizimi kısaltmalar, desteklemiştir.
Aritmetik operatörler
| Şebeke | Açıklama |
|---|---|
| + - * / | Temel aritmetik: Toplama, çıkarma, çarpma ve bölme.
bölünme, sağ işlenen sıfır olamaz. |
| ++ - | Artırma ve eksiltme. Artış veya teker değişkeni azaltın.
(X = ++ I gibi), değişken değiştirilirken burada bu ifadesinde kullanılan önce bu operatör önceden artmasını ya da azaltma için kullanılabilmektedir. Ayrıca, post-artmasını ya da azaltma için kullanılabilir bu ifadesinde kullanılan sonra değeri değiştirilir burada, (x gibi = i ++). i değişkeninin değeri başlangıçta 7 ise, örneğin, x değeri x = ++ I ifade değerlendirme sonra 8, ancak x = i ++, x değerinin iki durumda 7. değeridir i 8 olur. Bu operatörler f gibi işlevleri içeren ifadeler (). Bir ++ ile kullanılamaz. anlamları muğlak olduğundan, hatalara neden x ve +++ x --- ++ x, ancak - Ayrıca, gibi bir ifade kullanabilirsiniz. Bunu aşağıdaki gibi, gruba operatörleri parantezleri kullanabilirsiniz - (- x) veya + (++ x) Ancak. |
| + = - = * = / =% = | Bileşik atama operatörleri. Sağdaki değişken ekspresyonunda bir eleman ve sonuç değişkeni hem olarak kullanılır. Böylece, ekspresyonu, a + = b = a + b eşdeğerdir.
Bir ifade yalnızca bir bileşik atama operatörü sahip olabilir. |
| + - | Birli aritmetik: Bir sayının işaretini ayarlayın. |
| MOD veya% | Modül: bir sayı bölen tarafından bölünmesinin ardından kalan dönün. Sonuç bölen aynı işareti vardır. operatörün sağındaki değer bir tamsayı olmalıdır; sayısal olmayan bir değeri kullanılarak bir hataya neden olur ve gerçek sayısını belirlemek ise, ColdFusion (örneğin, 11 MOD 4,7, 3'tür) kesirli bölümü göz ardı eder. |
| \ | Tamsayı bölümü: bir tam sayı ile bir tamsayı bölün. Sonuç, bir tam sayıdır; örneğin 9 \ 4 doğru işlenen sıfır olamaz 2'dir |
| ^ | Üs: Bir güç (üs) yükseltilmiş sayının sonucunu döndürür. güç numarayı ayırmak için şapka karakteri (^) kullanmak; örneğin, 2 ^ 3 8. Gerçek ve negatif sayılar baz üs her ikisi için de izin olmasıdır. Bununla birlikte, hayali bir sayıya eşittir herhangi bir ifade, string "gibi -1 ^ .5 sonuç -1. # SAN. ColdFusion hayali ya da karmaşık sayılar desteklemez. |
Yorumlar
Tek satır ve satırlı: CFScript yorumların iki biçimi vardır.
// 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. */
/ Yakalamak deneyin
try {
throw(message="Oops", detail="xyz");
} catch (any e) {
WriteOutput("Error: " & e.message);
rethrow;
} finally {
WriteOutput("I run even if no error");
}
Anahtarı ifadesi
switch (car) {
case "Nissan":
WriteOutput("I own a Nissan");
break;
case "Toyota":
WriteOutput("I own a Toyota");
break;
default:
WriteOutput("I'm exotic");
}
Döngü
Döngü için
for (i=1; i LTE ArrayLen(array); i=i+1) {
WriteOutput(array[i]);
}
IN döngü İÇİN
struct = StructNew();
struct.one = "1";
struct.two = "2";
for (key in struct) {
WriteOutput(key);
}
//OUTPUTS onetwo
Döngü sırasında
x = 0;
while (x LT 5) {
x = x + 1;
WriteOutput(x);
}
// Outputs: 12345
Do / iken Döngü
x = 0;
do {
x = x+1;
WriteOutput(x);
} while (x LTE 0);
// Outputs: 1
Bir Array üzerinde döngü
for (item in array) {
doSomething(item);
}
JavaScript ile arasındaki farklar
CFScript ve JavaScript benzer olmamakla birlikte, birden önemli farklılıklara sahiptir. Aşağıdaki liste JavaScript farklılık CFScript özelliklerini tanımlar:
- CFScript bir üst veya JavaScript ifadeleri bir alt kümesi değildir ColdFusion ifadelerini kullanır. Özellikle, ColdFusion ifadeler bit bazında operatörleri destek, ve ColdFusion MOD veya% operatörü ilgili JavaScript% operatöründen farklı çalışır yoktur: ColdFusion, operatör tamsayı aritmetik yapar ve kesirli yok sayar. ColdFusion ifadeleri de EQV desteklemek, IMP, İÇEREN ve JavaScript desteklenmeyen operatörleri İÇERMEZ.
- Değişken bildirimleri (var anahtar) Sadece kullanıcı tanımlı fonksiyonlar ve iplikler kullanılır.
- CFScript küçük harfe duyarlı değildir.
- Tüm ifadeler noktalı virgül ile sona ve kod satır sonları dikkate alınmaz.
- Atamalar ifadeleri, değil ifadelerdir ve bu nedenle atama işlemini değerlendirirken gerektiren durumlarda kullanılamaz.
- Gibi JavaScript nesneleri
windowvedocument, kullanılamaz. - Sadece ColdFusion sunucusu CFScript işler. Hiçbir istemci tarafı CFScript yoktur.