2010-10-29 8 views
35

¿Está bien para hacer esto:caracteres cadena de acceso a JavaScript como matriz

var myString="Hello!"; 
alert(myString[0]); // shows "H" in an alert window 

O debe hacer ya sea con charAt (0) o substr (0,1)? Por "está bien" Quiero decir, ¿funcionará en la mayoría de los navegadores, hay una recomendación de mejores prácticas que dice lo contrario, etc.

Gracias.

Respuesta

35

El uso de charAt es probablemente la mejor idea ya que transmite la intención de su código con mayor precisión. Llamar al substr para un solo personaje es definitivamente una exageración.

alert(myString.charAt(0)); 
+0

Gracias, Saul. – Francisc

41

caracteres Acceso como propiedades numéricos de una cadena es non-standard prior to ECMAScript 5 and doesn't work in all browsers (por ejemplo, no funciona en IE 6 o 7). En su lugar, debe usar myString.charAt(0) cuando su código tenga que funcionar en entornos que no sean ECMAScript 5. Alternativamente, si usted va a ser el acceso a una gran cantidad de caracteres en la cadena a continuación, puede convertir una cadena en una matriz de caracteres utilizando su método split():

var myString = "Hello!"; 
var strChars = myString.split(""); 
alert(strChars[0]); 
+2

solo para agregar un enlace/referencia para el comentario no estándar, ver (en Acceso a caracteres): https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String – davin

+0

@davin: Gracias. Ahora he vinculado a esa sección en mi respuesta. –

+0

Gracias, Tim. Solo quería agregar que funciona en IE8. No estoy seguro de los demás – Francisc

Cuestiones relacionadas