кодесурса
«JavaScript

JavaScript: функция eval ()

script1adsense2code
script1adsense3code

Описание

Функция 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 = {a: яблоко, b: банан};

var lettername = getPropName (); // возвращает "a" или "b"

eval ("var display = letters." + propname);

Код рекомендуется:

буквы var = {a: яблоко, b: банан};

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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code