2014-01-03 5 views
2

Я искал в Интернете, что делает Eval, и вот что я нашел:Мне нужен eval?

Метод Eval() вычисляет JavaScript-код, представленный в виде строки.

И я прочитал эту question, который говорит, что это зло .
Но я действительно не понимаю, что он делает, т. Е. Я не вижу, когда использовать eval.
Я имею в виду:

var x= 3; 
var y =5; 
var z = eval("x+y"); 
// is the same as: 
var z = x+y; 

так, как я вижу, это просто добавление символов в мой код. Может ли кто-нибудь дать мне пример того, почему eval был создан в первую очередь?

+4

99.999% времени, 'eval' является неправильным инструментом для работы. –

+1

@RocketHazmat, так почему он был создан? –

+1

@ user689: Посмотрите этот вопрос: http://stackoverflow.com/questions/9089532/why-does-eval-exist :-D –

ответ

3

Он позволяет выполнять динамически сгенерированный код, а не только «x + y».

+0

можете ли вы привести пример? –

+1

Я думаю, что это не плохой пример для его использования. Http://jsfiddle.net/ondras/hYfN3/ –

+0

Можно избежать использования, но иногда использовать это самое простое решение. –

1

Eval позволяет оценить строку как код javascript. Это означает, что вы можете сделать такие вещи, как оценить строку для вызова функции:

function add(x,y){ 
    return (x+y); 
} 

stringToEval = 'add(5,6)'; 

eval(stringToEval); 

Этот код будет запустить функцию вычислив строку как вызов функции. Итак, я бы сказал, что здесь вам не нужно использовать eval. Просто добавьте две переменные.