Все три оператора (функции) Eval, Execute и ExecuteGlobal выполняют строковые выражения, но они разные. Eval оценивает выражение и возвращает результат.
Синтаксис: [результат =]eval_r(выражение_r)
выражение_r — это строка любого допустимого выражения VBScript.
Пример:
Скопируйте код кода следующим образом:
response.Write(eval_r(3+2)) 'Выход 5
3+2 заключено в кавычки, что указывает на то, что это строка, но в глазах Eval оно выполняется как выражение 3+2.
Execute выполняет один или несколько указанных операторов. Используйте двоеточия (:) для разделения нескольких операторов.
Синтаксис:Выполнение операторов
Пример:
Выполнить ответ.Write(abc) 'Вывод abc
Скопировать код
ответ.Write(abc) заключен в кавычки для обозначения строки
Но с точки зрения Execute он выполняется как ответ на оператор.Write(abc).
ExecuteGlobal выполняет один или несколько указанных операторов в глобальном пространстве имен.
Синтаксис: оператор ExecuteGlobal.
Пример:
Скопируйте код кода следующим образом:
тусклый с
c = глобальная переменная
субS1()
тусклый с
c = локальная переменная
Выполнить ответ.Write(c) 'Вывести локальные переменные
ExecuteGlobal response.Write(c) 'Вывод глобальных переменных
конец субтитра
Выполнить ответ.Write(c) 'Вывести глобальные переменные
вызов S1()
Переменная c определена как в глобальной области, так и в области функции. Execute решает использовать локальные переменные или глобальные переменные в зависимости от ее местоположения, тогда как ExecuteGlobal всегда распознает c только в глобальной области.
Подведите итог:
Eval выполняет только один оператор. Этот оператор может возвращать или не возвращать значение.
Execute выполняет один или несколько операторов, игнорируя возвращаемое значение оператора.
ExecuteGlobal выполняет один или несколько операторов и игнорирует возвращаемое значение оператора. Если глобальная переменная и локальная переменная имеют одинаковое имя, всегда используется глобальная переменная.
Уведомление:
В VBScript = используется для присваивания и сравнения. Например, можно сказать, что a=b присваивает значение b значению a или определяет, равны ли a и b. Итак, eval_r(a=). б) представляет собой операцию присваивания или сравнения?
Здесь существует соглашение. В Eval a=b всегда означает операцию сравнения, а в Execute и ExecuteGlobal — всегда присваивание.