我将null传递给JSON.parse(),虽然记录了第一个参数,说它应该是一个字符串值,但它仍然可以提供null
。
即使文档声明这是针对字符串的,并且这可以安全可靠地用于多个浏览器,为什么这不会引发错误?
答案 0 :(得分:3)
ECMAScript spec表示JSON.parse
的第一步:
- 让
醇>JText
成为ToString(text)
。
意味着它将转换为字符串赋予的任何参数,并null
强制转换为"null"
,这是null
的有效JSON表示。
请注意,单个此类JSON原语不应有效,JSON字符串应包装在对象或数组中。但传统上解析器一直都很松懈,部分原因在于它使我的实现变得更简单。
答案 1 :(得分:-1)
- 让JText为ToString(文本)。
醇>
它不要求第一个参数是字符串,它会尝试将其转换为字符串。
"null"
将为您提供old = Number(value)
,这是一个包含有效JSON的字符串。
Null:返回“null”。