【JavaScript 中卷】值

2023-05-16

数组,字符串和数字是一个程序最基本的组成部分,但在JavaScript中,它们可谓让人喜忧掺半。

本章将介绍JavaScript中的几个内置值类型,让读者深入了解和合理运用它们。

2.1 数组

和其他强类型语言不同,在JavaScript中,数组可以容纳任何类型的值,可以是字符串,数字,对象,甚至是其他数组:

var a = [1, "2", [3]];

a.length; //3
a[0] === 1; //true
a[2][0] === 3; //true

对数组声明后即可向其中加入值,不需要预先设定大小:
var a = [];
a.length; //0

a[0] = 1;
a[1] = '2';
a[2] = [3];
a.length; //3


使用delete运算符可以将单元从数组中删除,但是请注意,单元删除后,数组的length属性并不会发生变化。

类数组

有时候需要将类数组转换为真正的数组,这一般通过数组工具函数(indexOf(...),concat(...),forEach(...)等)来实现。

第一种方法:

function foo() {

  var arr = Array.prototype.slice.call(arguments);

  arr.push('bam');

  console.log(arr);

}

foo('bar', 'baz'); //['bar', 'baz', 'bam']

如上所示,slice()返回参数列表的一个数组复本。

第二种方法:

var arr = Array.from(arguments); 

2.2 字符串

字符串经常被当成字符数组。

例如下面两个值:

var a = "foo";

var b = ['f', 'o', 'o'];

字符串和数组的确很相似,它们都是类数组,都有length属性以及indexOf(...)和concat(...)方法。

a.length; //3

b.length; //3

a.indexOf('o'); //1

b.indexOf('o'); //1

但这并不意味着它们是“字符数组”,比如:

a[1] = 'O';

b[1] = 'O'; 

a; //'foo'

b; //['f', 'O', 'o']

JavaScript中字符串是不可变的,而数组是可变的。字符串不可变是指字符串的成员函数不会改变其原始值,而是创建并返回一个新的字符串。而数组的成员函数都是在其原始值上进行操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【JavaScript 中卷】值 的相关文章

随机推荐