基本上所有语言(有eval的)都不建议用 eval, 除非您很确定知道自己在干甚麼又别无他法.
eval 之所以不建议使用是因为安全性隐患, 此话适用於所有编程语言, 正常来说只有两种处境下才会用 eval, 一是在写病毒码, 如以 utf-7 (没写错, 是utf-7) 编写代码 让使用者, 甚至防毒软件都看不懂真正要执行的代码是甚麼, 另一个是做测试, 除错; 成品 (production) 绝不该出现 eval 的语句.
这是因为 eval 的东西都不会再有别的防御机制去审视要执行的是甚麼, 比如您要 eval 一个表单里的某串 text, 这就足以让植入式(病毒)码 (injection code) 长驱直入, 成为您页面里的一部分.
当然, 一个更低层次的问题就是, 其实与其在 eval 里写代码, 还不如写句正正式式的代码, 在 eval 里要写很多 \" \' \\ , 写著写著都眼花了.