2014-07-24 4 views
0

Je comprends que la méthode split() de javascript doit prendre une chaîne et la diviser en un tableau basé sur le (s) paramètre (s) passé (s) dans la méthode.Pourquoi la méthode split renvoie-t-elle toujours une chaîne

J'ai exécutez la commande suivante dans la console:

var sen = 'I love javascript'; 
sen.split(' '); 
console.log(typeof(sen)); 

Alors split (» «) devrait diviser la chaîne en fonction des espaces et retourne un tableau avec 3 chaînes.

Cependant, la console retourne la typeof comme « string » plutôt que « l'objet »

Est-ce que quelqu'un sait pourquoi?

+0

Lire [la documentation] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference). Quel * est * le résultat de ['split'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split)? – user2864740

+0

J'ai lu la documentation, ou je ne demanderais pas ici. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split Je vois que split devrait aboutir à un tableau de chaînes. exécuter typeof sur un tableau devrait retourner l'objet ne devrait pas. – HelloWorld

+0

Mot-clé: * renvoie * (l'hypothèse dans la question est fausse) – user2864740

Répondre

3

Parce que la division ne change pas sen. Le returnValue de

sen.split(' '); 

serait un tableau. Essayez:

var sen = 'I love javascript'; 
var arr = sen.split(' '); 
console.log(typeof(arr)); 
+0

donc le problème était que je devais stocker le résultat de sen.split ('') dans une variable. Je l'ai! – HelloWorld

+0

@HelloWorld - il serait plus correct de dire que la fonction split ne modifie pas la valeur d'origine – jasonscript

+0

@jasonscript && jhinzmann - Si l'un de vous a le temps, cela vous dérangerait-il d'expliquer? Je comprends que la fonction split est utilisée pour diviser une chaîne en un tableau. Pourquoi ne modifie-t-il pas la valeur d'origine (ou le type de données d'ailleurs) à moins qu'elle ne soit stockée dans une nouvelle variable? – HelloWorld