亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

執行eval('({"ok":"true"})')返回了{ok: "true"},什么原理?

執行eval('({"ok":"true"})')返回了{ok: "true"},什么原理?

海綿寶寶撒 2018-09-24 16:14:56
如下圖是在Chrome中得到的:問題:首先,str代表的是一個json字符串,這點應該是沒疑問的,然后我運行eval('({"ok":"true"})')就返回了{ok: "true"},這里面是怎么實現的?是去看別人寫的項目的源碼中看到的,不明所以,請賜教~
查看完整描述

1 回答

?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

eval函數接受字符串,然后把這個字符串當作js代碼去運行,返回運行的結果。

eval('({"ok":"true"})')

相當于運行

({"ok":"true"})

返回對象{ok: "true"}。

個人覺得需要注意的點是兩邊為什么要加括號?
因為{}不僅可以用來聲明對象,還表示塊級作用域,
如果兩邊不加括號,會把{}當成塊級作用域解析,就會報語法錯誤;
加上括號,會把{}當作對象聲明處理,所以就會生成一個新的對象,不會報語法錯誤。


查看完整回答
反對 回復 2018-09-24
  • 1 回答
  • 0 關注
  • 656 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號