CFScript - CFScript
Эта статья нужны дополнительные цитаты для проверка.Ноябрь 2006 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
CFScript является продолжением CFML на платформе ColdFusion. CFScript напоминает JavaScript. Немного ColdFusion Разработчики предпочитаю его, поскольку у него меньше визуальных и типографских накладных расходов, чем у обычного CFML.[требуется разъяснение ]
использование
Считается лучшей практикой писать компоненты ColdFusion и всю бизнес-логику на CFScript и использовать CFML только в файлах .cfm среди HTML.
Если только он не находится в чистом компоненте ColdFusion, основанном на скриптах, весь код CFScript должен содержаться в паре тегов CFScript следующим образом:
<cfscript> xParam = 115; yParam = 200; цвет = 'FFCC99';</cfscript>
Простой пример функция:
<cfscript>функция Сумма(а, б) { вар сумма = а + б; возвращаться сумма;}</cfscript>
Простой пример компонента в CFScript, содержащего две функции:
компонент { общественный пустота функция фу() { WriteOutput("Метод foo () вызван
"); } общественный функция getString() { вар Икс = "Привет"; возвращаться Икс; }}
ColdFusion 11, Railo 4.1+ и Люси 4.5+ оба делают все возможное, чтобы полностью поддерживать теги cf в CFScript. Хотя могут быть и не прямые замены для всех тегов, часто все же возможно получить результаты тега в сценарии, но с использованием другого синтаксиса. Например, вот как получить запрос к переменной в CFSCRIPT без написания UDF:
<cfscript> qGetData = новый Запрос(); qGetData .setDataSource('# APPLICATION.datasource #'); qGetData .setSQL('ВЫБРАТЬ столбец1, столбец2 ИЗ таблицы WHERE 1'); qDateResult = qGetData .Выполнять().getResult();</cfscript>
Синтаксис
Начиная с ColdFusion 8, CFScript поддерживает синтаксис аббревиатуры, которые распространены во многих других языках программирования, например, «++», «<=» и «+ =».[1]
Арифметические операторы
Оператор | Описание |
---|---|
+ - * / | Базовая арифметика: сложение, вычитание, умножение и деление. При делении правый операнд не может быть нулевым. |
++ -- | Увеличение и уменьшение. Увеличьте или уменьшите переменную на единицу. Эти операторы могут использоваться для предварительного увеличения или уменьшения (как в x = ++ i), где переменная изменяется перед ее использованием в выражении. Их также можно использовать для пост-инкремента или уменьшения (как в x = i ++), где значение изменяется после того, как оно используется в выражении. Если значение переменной i изначально равно 7, например, значение x в x = ++ i равно 8 после вычисления выражения, но в x = i ++ значение x равно 7. В обоих случаях значение я становится 8. Эти операторы нельзя использовать с выражениями, которые включают функции, как в f (). A ++. Кроме того, вы можете использовать такие выражения, как - ++ x, но --- x и +++ x вызывают ошибки, поскольку их значения неоднозначны. Однако вы можете использовать круглые скобки для группировки операторов, например - (- x) или + (++ x). |
+= -= *= /= %= | Составные операторы присваивания. Переменная справа используется как элемент выражения и как переменная результата. Таким образом, выражение a + = b эквивалентно a = a + b. В выражении может быть только один составной оператор присваивания. |
+ - | Унарная арифметика: установка знака числа. |
MOD или% | Модуль: возвращает остаток от деления числа на делитель. Результат имеет тот же знак, что и делитель. Значение справа от оператора должно быть целым числом; использование нечислового значения вызывает ошибку, и если вы указываете действительное число, ColdFusion игнорирует дробную часть (например, 11 MOD 4.7 равно 3). |
Целочисленное деление: целое число делится на другое целое число. Результат также является целым числом; например, 94 равно 2. Правый операнд не может быть нулевым. | |
^ | Возведение в степень: вернуть результат числа, возведенного в степень (экспонента). Используйте символ вставки (^), чтобы отделить число от степени; например, 2 ^ 3 равно 8. Действительные и отрицательные числа разрешены как для основания, так и для экспоненты. Однако любое выражение, которое приравнивается к мнимому числу, например -1 ^ .5, приводит к строке «-1. # IND. ColdFusion не поддерживает мнимые или комплексные числа. |
Комментарии
CFScript имеет две формы комментариев: однострочные и многострочные.
// Это однострочный комментарий.// Это второй однострочный комментарий.
/ * Это многострочный комментарий. Необязательно начинать каждую строку с индикатора комментария. Эта строка является последней строкой в комментарии. * /
Попробуй поймать
пытаться { бросать(сообщение="Ой", деталь="xyz");} ловить (любой е) { WriteOutput("Ошибка: " & е.сообщение); перебросить;} наконец-то { WriteOutput(«Бегу, даже если без ошибок»);}
Заявление о переключении
выключатель (машина) { дело «Ниссан»: WriteOutput("У меня есть Nissan"); перемена; дело «Тойота»: WriteOutput("У меня есть Тойота"); перемена; дефолт: WriteOutput("Я экзотика");}
Зацикливание
Для петли
за (я=1; я LTE ArrayLen(множество); я=я+1) { WriteOutput(множество[я]);}
FOR IN Loop
структура = StructNew();структура.один = "1";структура.два = "2";за (ключ в структура) { WriteOutput(ключ);}// ВЫХОДОВ один
Пока цикл
Икс = 0;пока (Икс LT 5) { Икс = Икс + 1; WriteOutput(Икс);}// Выходы: 12345
Сделать / Пока цикл
Икс = 0;делать { Икс = Икс+1; WriteOutput(Икс);} пока (Икс LTE 0);// Выходы: 1
Цикл по массиву
за (элемент в множество) { сделай что-нибудь(элемент);}
Отличия от JavaScript
Хотя CFScript и JavaScript похожи, у них есть несколько ключевых отличий. В следующем списке указаны функции CFScript, которые отличаются от JavaScript:
- CFScript использует ColdFusion выражение, которые не являются надмножеством или подмножеством выражений JavaScript. В частности, выражения ColdFusion не поддерживают побитовые операторы, и оператор ColdFusion MOD или% работает иначе, чем соответствующий оператор% JavaScript: в ColdFusion оператор выполняет целочисленные арифметические операции и игнорирует дробные части. Выражения ColdFusion также поддерживают операторы EQV, IMP, CONTAINS и DOES NOT CONTAIN, которые не поддерживаются в JavaScript.
- Объявления переменных (ключевое слово var) используются только в пользовательских функциях и потоках.
- CFScript не чувствителен к регистру.
- Все операторы заканчиваются точкой с запятой, а разрывы строк в коде игнорируются.
- Присваивания являются операторами, а не выражениями, и поэтому не могут использоваться в ситуациях, требующих оценки операции присваивания.
- Объекты JavaScript, такие как
окно
идокумент
, недоступны. - CFScript обрабатывает только сервер ColdFusion. CFScript на стороне клиента отсутствует.
Рекомендации
- ^ Надел, Бен (31 мая 2007 г.). «Изучение ColdFusion 8: приветствую оператора New ++».