Qui ressemble fort à un bug.
À partir de l'ECMAScript 5.1 spécifications:
Conforme implémentations de JSON.analyser et JSON.stringify doit prendre en charge l'exacte interchange format décrit dans la présente spécification, sans suppressions ou des extensions du format. Cela diffère de la RFC 4627 qui permet de parser JSON à accepter la non-JSON formes et les extensions.
Et:
JSON.stringify crée une Chaîne de caractères qui est conforme aux JSON de la grammaire. JSON.analyser accepte une Chaîne de caractères qui est conforme à la grammaire JSON
Il se peut que de toute façon il enroule la chaîne dans un "JSONText" type d'objet qui a toujours un typeof
de string
mais qui semble très étrange.
Je crois vraiment que la suite de la mise en œuvre dans ce cas est le bon:
JSON.stringify(2) == "2" && JSON.stringify(2) === "2" && JSON.stringify(2) == 2 && JSON.stringify(2) !== 2;
true
Selon @6502 (voir le commentaire) c'est - true
dans:
Chrome; Firefox; IE9; Safari iPad; OsX Safari; le N1 navigateur Android
L'ECMAScript 5.1 document de spécification: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf