js的一个小问题,请教高手
vartest=2;eval("vartest=1;");deletetest;alert(test);为什么会弹出1,困惑,求高手赐教,最好能把原理给讲一下,这个是真不...
var test = 2;
eval("var test = 1;");
delete test;
alert(test);
为什么会弹出1,困惑,求高手赐教,最好能把原理给讲一下,这个是真不明白。 展开
eval("var test = 1;");
delete test;
alert(test);
为什么会弹出1,困惑,求高手赐教,最好能把原理给讲一下,这个是真不明白。 展开
3个回答
展开全部
因为你最后一次赋值等于1然后alert 弹框输出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我认为是这样的
eval函数本就就是一个计算函数,你在eval内定义了另一个test,相当于是一个私有值,而你定义的var test=2是一个全局值,你用的delete test只是删除了这个全局值,而没有删除上面的私有值,所以返回值是eval内的值
eval函数本就就是一个计算函数,你在eval内定义了另一个test,相当于是一个私有值,而你定义的var test=2是一个全局值,你用的delete test只是删除了这个全局值,而没有删除上面的私有值,所以返回值是eval内的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询