您知道eval中的和括号的含义吗
您知道eval中的和括号的含义吗
1 | obj.alexa = eval( "(" + obj.alexa + ")" ); |
知道大家有木有注意到 eval() 还要用一对圆括号将字符串包起来,对此我寻找到比较好的解释就是:
原因:
归结于 eval 本身的问题,由于 json 是以 {} 的方式来开始以及结束的,在 JavaScript 中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。
解决方法:
加上圆括号的目的是迫使 eval 函数在处理 JavaScript 代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执 行。举一个例子,例如对象字面量 {},如若不加外层的括号,那么 eval 会将大括号识别为 JavaScript 代码块的开始和结束标记,那么 {} 将会被认为是执行了一句空语句。
分类:
前端
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)