javascript中的()和{}

本文探讨了JavaScript中eval函数的使用技巧,特别是如何利用小括号将JSON字符串转换为对象。通过实例说明了eval在处理不同类型的输入时的行为差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由eval('('+json+')')想到的

在javascript中,小括号和大括号也有他的特殊用法,比如小括号他可以用来执行一个函数,

可以作为一个分隔符。而大括号可以是一个语句块,也可以作为一个对象字面量,来构造

一个对象。大括号在作为一个语句块执行时和作为表达式一部分执行时时完全不一样的,当

作为表达式执行时是创建了一个对象,而作为一个语句执行时,只是单纯的执行其中的语句,

这在eval函数中表现的尤为明显。eval在执行时会把字符串参数当做语句执行,当不是字符串

时直接返回该参数。那么eval({a:2})返回的就是一个对象,也就是{a:2},但是当eval('{a:2}')

时,他会把字符串中的内容当做语句执行,也就是把{a:2}当做语句执行,a:2是没有意义

的,但是当eval('({a:2})')时,会执行({a:2}),这时{a:2}被当做了表达式的一部分,就是表示

一个对象,这也是为什么eval在执行json的时候要写成eval('('+json+')')的原因,因为json

是一个字符串,那么这样就相当于执行(json),其中的json已经成为了一个对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值