JavaScript est un navigateur: est-il sécuritaire de traiter une chaîne comme tableau?

Ce code est-il sécurisé dans tous les principaux navigateurs?

var string = '123' alert(string[1] == '2') // should alert true 

Non, ce n'est pas sûr. Internet Explorer 7 ne prend pas en charge l'accès aux chaînes par index.

Vous devez utiliser la méthode charAt pour être compatibles avec IE7:

 var string = '123'; alert(string.charAt(1) == '2'); 

Tout en JavaScript est un objet; Tableaux, fonctions, chaînes, tout. Le code que vous mettez est parfaitement valable, même si un peu confus – il existe de meilleures façons de le faire

 var str = '123'; str[1] === '2'; // true, as you've just discovered (if you're not in IE7) // Better ways: str.indexOf('2'); // 1 str.charAt(1); // '2' str.substr(1, 1); // '2' str.split(''); // ['1', '2', '3'] 

Les meilleures façons de s'assurer que quelqu'un d'autre lisant votre code (soit quelqu'un d'autre soit vous-même dans les 6 mois) ne pense pas que str soit un tableau. Cela rend votre code beaucoup plus facile à lire et à entretenir

Je ne vois pas vraiment pourquoi vous ne pouvez pas le faire … même si vous pouvez utiliser .substring ()

J'ai testé IE7, IE8, Safari, Chrome et FF. Tout a bien fonctionné!

EDIT juste pour les coups de pied, il fonctionne aussi dans Konqueror! Js Fiddle exemple

Ça va marcher. Cela pourrait être un problème si vous décidez d'utiliser des fonctions spécifiques au navigateur (IE xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); ne fonctionne que sur Internet Explorer)