字符串就是零个或多个排在一起的字符,放在单引号或双引号之中。如果要在单引号字符串的内部使用单引号,必须在内部的单引号前面加上反斜杠,表示转义。
连接运算符(+)可以连接多个单行字符串,将长字符串拆成多行书写,输出的时候也是单行。
可以使用数组的方括号运算符,返回字符串某个位置的字符。length属性返回字符串的长度,该属性是无法改变的。
数组是按次序排列的一组值。每个值的位置都有编号(从0开始),整个数组用方括号表示。任何类型的数据,都可以放入数组。
var arr = [{a: 1}, [1, 2, 3], function() {return true;}];
上面数组arr的3个成员依次是对象、数组、函数。
数组是一种特殊的对象,它的键名是从0开始按次序排列的一组整数。下面代码的Object.keys方法返回数组的所有键名"0"、"1"、"2"。
var arr = ['a', 'b', 'c'];
Object.keys(arr); // ["0", "1", "2"]
由于数组成员的键名是固定的,因此数组不用为每个元素指定键名,而对象的每个成员都必须指定键名。
JavaScript语言规定对象的键名一律为字符串,所以数组的键名是字符串,之所以可用数值读取,是因为非字符串的键名会被转为字符串。
对象有两种读取成员的方法:点结构(object.key)和方括号结构(object[key])。但是,对于数值的键名,不能使用点结构。
var arr = [1, 2, 3];
arr.0 // SyntaxError
上面代码中,arr.0的写法不合法,因为单独的数值不能作为标识符(identifier)。所以,数组成员只能用方括号arr[0]表示(方括号是运算符,可以接受数值)。
数组的length属性返回数组的成员数量,等于键名中的最大整数加上1。
length属性是可写的,将数组清空可以将length属性设为0。
数组是一种动态的数据结构,可以随时增减数组的成员。
for...in循环可以遍历数组。
var a = [1, 2, 3];
for (var i in a)
{
console.log(a[i]);//1 2 3
}
数组的forEach方法,也可以用来遍历数组。
var colors = ['red', 'green', 'blue'];
colors.forEach(function (color) {
red green blue
});
如果数组的某个位置是空元素,两个逗号之间没有任何值,表明数组存在空位。
数组的空位不影响length属性,如果最后一个元素后面有逗号,不会产生空位。
单独读取数组的空位返回undefined。使用delete命令删除一个数组成员,会形成空位,并且不会影响length属性。
如果数组的某个位置是空位,使用forEach方法遍历时空位会被跳过。