Les nombres avec des zéros non significatifs en JavaScript sont interprétés différemment selon leur format.
Évolution historique
Au début, les zéros non significatifs représentaient l'octal (base 8) en JavaScript, similaire au 0x non significatif pour l'hexadécimal (base 16).
10, 012, 0xA // 均表示十进制数 10
Dans ECMAScript 3, cependant, cette représentation octale a été rétrogradée au rang d'extension facultative, et les littéraux entiers décimaux ne peuvent plus avoir de zéros non significatifs (sauf si l'implémentation prend en charge l'extension).
Mode strict dans ES5 et versions ultérieures
En mode strict dans ES5, les littéraux décimaux avec des zéros non significatifs ne sont plus autorisés :
0 // 无效 NonZeroDigit DecimalDigits(opt) // 有效
ES6 Nouvelles représentations introduites
ES6 introduit des littéraux binaires et octaux, avec les symboles principaux 0b et 0o :
Littéral octal traditionnel
Bien que n'est plus recommandé, avec Les représentations octales avec des zéros non significatifs (c'est-à-dire les littéraux octaux traditionnels) peuvent toujours être utilisées en mode non strict :
010 // 可能会被解释为 8 或 10,具体取决于实现
Bonnes pratiques
Pour garantir que les nombres sont toujours Interprété comme décimal, il est recommandé de supprimer les zéros non significatifs ou d'utiliser parseInt analyse les nombres :
parseInt('010', 8) // 返回 8 parseInt('010', 10) // 返回 10
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!