本文产自于本人阅读《你不知道的JavaScript(中卷)》第二章前两节,文章采用了书籍原文以及个人理解构成。这是一本指引JavaScript使用者语言进阶的书,非常推荐有心的人士静下来研读。
在阅读这两节时不知道读我这篇文章的读者有没有和我此前一样对于JS中字符串和数组之间的关系十分混淆,懂了却没完全懂的感觉。如果有的话,欢迎阅读该文
1.字符串是字符数组么?
首先答案是否定的,JavaScript 中的字符串和字符数组并不是一回事,最多只是看上去相似而已。
但不可否认的是字符串和数组的确很相似,它们都是类数组,都有 length 属性以及 indexOf(…)(从 ES5 开始数组支持此方法)和 concat(…) 方法。比如:
var a = "foo";
var b = ["f","o","o"];
//length属性
a.length; // 3
b.length; // 3
//indexOf方法
a.indexOf( "o" ); // 1
b.indexOf( "o" ); // 1
//concat方法
var c = a.concat( "bar" ); // "foobar"
var d = b.concat( ["b","a","r"] ); // ["f","o","o","b","a","r"]
a === c; // false
b === d; // false
a; // "foo"
b; // [