Le caractère NULL ou NULL-Terminator ( \ 0 code>) doit être utilisé pour mettre fin à une séquence contiguë de caractères. Je trouve que dans C, je peux ajouter le caractère dans une chaîne à une position aléatoire et la chaîne sera coupée de ce point. Par exemple: var s = "Hello\0World";
3 Réponses :
JavaScript n'utilise pas de chaînes terminées NULL, tandis que c fait. P>
Les chaînes JavaScript sont stockées en gardant la trace des caractères et la longueur séparément au lieu d'essayer de supposer qu'un null marque la fin de la chaîne. P>
Que utilise i> JS pour les chaînes?
in javascript A mais dans ce cas, je pense qu'il n'a pas besoin de déranger l'octet null :) p> p> null code> octet dans une chaîne est simplement un null code> octet dans une chaîne.
Si vous voulez tronquer la chaîne
La chaîne C pointe toujours sur une adresse en mémoire où "Hello \ 0world" est stocké, seulement que la plupart des fonctions de traitement des chaînes considèrent 0 extrémité de la chaîne. Pour certaines fonctions, vous devez passer un argument de longueur de chaîne, mais le plus simplement lire jusqu'à ce qu'ils trouvent l'octet nul. En mémoire, la chaîne est en réalité "Hello \ 0world \ 0". P>
Un moteur JavaScript ne peut pas déterminer la longueur de la chaîne en recherchant un octet nul, car vous ne seriez jamais en mesure d'avoir une nullbyte à l'intérieur d'une chaîne. Il y a probablement quelque chose à ce sujet dans les spécifications. Le moteur doit plutôt stocker la longueur de la chaîne séparément, puis lisez que de nombreux caractères de la mémoire chaque fois que vous accédez à la chaîne. P>
Et comment analyser correctement et stocker la taille des tampons est quelque chose que les langues de script essayent généralement de vous cacher de l'utilisateur. C'est la moitié de la moitié du script, de ne pas nécessiter que le programmeur s'inquiète de l'ajout de Alors, comment une chaîne JavaScript se comporte-t-elle? Je ne sais pas, c'est probablement le moteur de décrire ses propriétés en profondeur. Tant que vous interface avec l'objet comme la spécification indique, il peut être implémenté de quelque manière que ce soit, en utilisant des structures de tampon et de longueur, à l'aide d'un caractère de traduction pour 0, à l'aide d'une liste liée des caractères, etc ... p> 0 code> Pour créer des tampons de caractères créés et de stocker la longueur de chaîne séparément afin que les fonctions de manutention de chaîne n'impriment pas de caractères aléatoires en dehors de votre Tampon à la recherche d'une nullbyte ... p>
Je pense que JavaScript n'est pas C. donc l'octet nul dans une chaîne est simplement un octet nul dans une ficelle.
La plupart des langues suivent la tradition Pascal de représenter des chaînes comme une matrice avec une longueur entière (permettant ainsi le caractère null). C est en fait l'intrus dans ce sens.