JavaScript: функция eval ()
Описание
Функция eval используется для выполнения исходного кода JavaScript.
Синтаксис
Eval (выражение)
параметры
выражение:
Expr - это строка, представляющая JavaScript-выражение, оператор или последовательность операторов. Выражение может включать переменные и свойства существующих объектов. Мы не должны вызывать eval для вычисления арифметического выражения (5 * 9 + 5-4), поскольку JavaScript автоматически вычисляет арифметические выражения. Обратите внимание, что аргумент expr параметра является необязательным. Если аргумента нет, возвращается eval "undefined".
Не используйте eval ()
eval () вялый и подвержен угрозам безопасности, поэтому его не рекомендуется использовать. Вот почему так сказано:
i) Код, переданный в eval, исполняется с привилегиями исполнителя. Таким образом, если на переданный код могут повлиять некоторые злонамеренные намерения, это приведет к запуску вредоносного кода на компьютере пользователя с привилегиями вашего сайта.
ii) Злонамеренный код может понять область, с которой был вызван код, переданный в eval. Что, в свою очередь, может вызвать угрозы безопасности.
iii) eval должен вызвать переводчика JS, что делает его вялым.
Существует несколько альтернатив eval ().
Пример -1 функции eval ()
В следующем примере показано, как использовать функцию eval ().
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>JavaScript: eval function example-1</title>
</head>
<body>
<h1 style="color: red">JavaScript eval() function example-1</h1>
<hr />
<script type="text/javascript">
//This is done to make the following JavaScript code compatible to XHTML. <![CDATA[
eval("language = 78; math = 89; science=90; document.write('Total marks : '+(language + math + science));");
//]]>
</script>
</body>
</html>
Пример -2 функции eval ()
Вот еще один пример функции eval ().
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>JavaScript: eval function example-2</title>
</head>
<body>
<h1 style="color: red">JavaScript eval() function example-2</h1>
<hr />
<script type="text/javascript">
//This is done to make the following JavaScript code compatible to XHTML. <![CDATA[
var x = "alert ('We are learning JavaScript eval() function.')";
eval (x);
//]]>
</script>
</body>
</html>
Альтернативы eval
Вместо использования eval для преобразования имен свойств в свойства, используйте операторы-члены.
Код не рекомендуется:
var lettername = getPropName (); // возвращает "a" или "b"
eval ("var display = letters." + propname);
Код рекомендуется:
var lettername = getPropName (); // возвращает "a" или "b"
var display = letters [propname]; // letters ["a"] совпадает с letters.a
Используйте функции вместо оценки части кода
Используйте json.strngify и JSON.parse вместо evals
Вы можете нажать здесь, чтобы просмотреть подробное обсуждение.
Передайте данные вместо кода
Чтобы очистить данные с веб-страницы saya, используйте XPATH вместо кода JavaScript.
Поддерживать совместимость кросс-реализации
Не используйте второй аргумент в eval. Он не поддерживается во всех современных браузерах.
Выполнить код с ограниченными правами
Если вообще вы запускаете код с eval, уменьшите привилегии. Хотя это может быть не реализовано во многих приложениях. Некоторые варианты использования могут быть реализованы в XUL - интерфейсной архитектуре Mozilla.
Предыдущая: JavaScript: Функция
Далее: JavaScript isFinite () функция
Новый контент: Composer: менеджер зависимостей для PHP , R программирования