关于eval的一些疑问
var a = eval("()=>{return ('../assets/a.png')}")
console.log(a); // function ()=>{return ('../assets/a.png')}
var a = eval("function(){return ('../assets/a.png')}")
//Uncaught SyntaxError: Unexpected token (因为不能直接生成匿名方法)
var a = eval("function foo(){return ('../assets/a.png')}")
console.log(a); // undefined
第三个我就不太懂了,什么eval之后a是undefined呢?而第一个eval的a是能正确被赋值的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果要把动态的function给一个变量,需要用 ()把函数括起来。或者你写个闭包
eval我记得是将字符串当代码去执行。
所以说
就相当于是在console中执行下面的代码,
这只是定义一个function,所以没有任何的返回值,所以log就会打出undefined。
至于你第一个
我大概查了一下,说这个()=>是Chrome的commandLineAPI,
你执行上面那个代码,在console中执行 $_ 就能把刚刚定义的function调用出来。
但是具体的还不太清楚,希望对你有帮助。