pvn*_*ula 6 javascript jquery parsing json ecmascript-5
JSON.parse
现代浏览器是否在eval()
内部用于评估和执行动态代码?
因为我一直在浏览Douglas Crockford的JSON库.它也在eval()
使用parse()时使用,但在实际评估之前进行预处理.如:-
支持JSON.parse的现代浏览器本身是执行此操作还是遵循其他协议?
JSON.parse()
不使用eval()
这是设计,因为eval()
能够执行任何您提供的任意JavaScript代码,它可以执行您不希望它的事情.所以,JSON.parse()
做什么它在锡说:它实际上解析整个字符串并重建和整个对象树.
JSON.parse
通常委托给用"本机"代码实现的内部函数,其中"native"表示在浏览器的javascript引擎的上下文中被认为是"本机"的(可以是编译的机器代码,可以是VM的字节码等等). ).我不认为对此有任何强烈要求.
JSON(符号)本身由RFC4627编写.
关于JSON
对象及其方法的实现,所有现代浏览器的实现应该表现相同,因为它们应遵循ECMAScript 5的JSON对象的相同规范.但是,总是存在潜在缺陷的可能性.例如,V8最初包含这个讨厌的bug.
另请注意,上面评论中列出的实现是为了向JSON.parse()
本机不支持它的浏览器添加支持(也称为"有时需要支持的这些该旧版浏览器").但这并不意味着它们必然是如何实现它的.
例如,对于Chrome中使用的Google V8实现,请参阅 json.js,该json.js从json_parser.h调用本机代码.
归档时间: |
|
查看次数: |
1689 次 |
最近记录: |