JavaScript eval() 函数
eval -- 执行字符串形式的JavaScript表达式或语句,并返回结果(如果有)
- eval,中文"执行指定命令"的意思
- 引用网址:http://www.dreamdu.com/javascript/eval/
eval函数语法
eval
(
codes
)
;
eval函数参数
- codes -- 字符串形式的表达式或语句
eval函数返回值
- 如果没有参数,返回undefined
- 如果有返回值将返回此值,否则返回undefined
- 如果为表达式,返回表达式的值
- 如果为语句返回语句的值
- 如果为多条语句或表达式返回最后一条语句的值
eval函数说明
除了解析JSON对象外,eval在程序中很少使用
使用eval解析JSON对象
var
json
=
eval
(
"
({sitename:'dreamdu',sitedate:new Date(1980, 12, 17, 12, 0, 0)})
"
)
;
document
.
write
(
json
.
sitename
)
;
document
.
write
(
json
.
sitedate
)
;
结果:
dreamdu Sat Jan 17 12:00:00 UTC+0800 1981
猴子提示: 由于eval可以任意执行JavaScript代码,因此可能带来安全问题
示例
document
.
write
(
eval
(
)
)
;
document
.
write
(
eval
(
"
6+8
"
)
)
;
document
.
write
(
eval
(
"
6+8;7+9
"
)
)
;
document
.
write
(
eval
(
"
var a=1
"
)
)
;
结果:
undefined 14 16 undefined
JavaScript eval() 函数示例 -- 可以尝试编辑
eval函数异常
- SyntaxError -- codes中有非法的JavaScript表达式或语句
- EvalError -- 非法调用eval函数
- Error -- 当eval解析的JavaScript表达式或语句出现异常时,eval也会抛出这个异常