2014-07-24 73 views
0

我明白,javascript的split()方法應該接受一個字符串,並根據方法中傳遞的參數將其拆分爲一個數組。爲什麼split方法仍然返回一個字符串

我已經運行在控制檯以下:

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

因此分裂(」「)應該分頭基於空白字符串,並用3個字符串返回數組。

但是控制檯返回的typeof爲「字符串」,而不是「物」

有誰知道爲什麼嗎?

+0

閱讀[一些文檔】(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference)。什麼*是['split']的結果(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split)? – user2864740

+0

我已閱讀文檔,或者我不會在這裏問。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split我看到分割應該導致一個字符串數組。在數組上運行typeof應該不會返回對象。 – HelloWorld

+0

關鍵字:* returns *(在問題中的假設是錯誤的) – user2864740

回答

3

因爲拆分不會改變sen。 返回值

sen.split(' '); 

將是一個數組。 嘗試:

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

所以問題是我需要將sen.split('')的結果存儲在一個變量中。得到它了! – HelloWorld

+0

@HelloWorld - 說分割函數不會修改原始值會更準確 – jasonscript

+0

@jasonscript && jhinzmann - 如果你們中的任何一個人有時間你會介意解釋嗎?我知道split函數用於將字符串拆分成數組。爲什麼它不修改原始值(或該數據類型),除非它存儲在一個新變量中? – HelloWorld

相關問題