var ss="a:'\'d'"; alert(ss);
以上弹出框结果为:a:''d'
var ss="a:'\\'d'"; alert(ss);
以上弹出框结果为:a:'\'d'
【================】
var ss="a:'\'d'"; alert(eval("[{"+ss+"}]")[0].a);
以上会报错:错误: 缺少 '}'
应该改为:
var ss="a:'\\'d'"; alert(eval("[{"+ss+"}]")[0].a);
以上结果正确,输出:'d
【================】
原理:
先解析字符串中的\'为',然后进行eval('''),之前的会因为多了一个',所以报错。