方法

length属性之外,字符串和数组对象都包含一些持有函数值的属性。

  1. let doh = "Doh";
  2. console.log(typeof doh.toUpperCase);
  3. // → function
  4. console.log(doh.toUpperCase());
  5. // → DOH

每个字符串都有toUpperCase属性。 调用时,它将返回所有字母转换为大写字符串的副本。 另外还有toLowerCase

有趣的是,虽然我们没有在调用toUpperCase时传递任何参数,但该函数访问了字符串"Doh",即被调用的属性所属的值。我们会在第 6 章中阐述这其中的原理。

我们通常将包含函数的属性称为某个值的方法。比如说,toUpperCase是字符串的一个方法。

此示例演示了两种方法,可用于操作数组:

  1. let sequence = [1, 2, 3];
  2. sequence.push(4);
  3. sequence.push(5);
  4. console.log(sequence);
  5. // → [1, 2, 3, 4, 5]
  6. console.log(sequence.pop());
  7. // → 5
  8. console.log(sequence);
  9. // → [1, 2, 3, 4]

push方法将值添加到数组的末尾,而pop方法则相反,删除数组中的最后一个值并将其返回。

这些有点愚蠢的名字是栈的传统术语。 编程中的栈是一种数据结构,它允许你将值推入并按相反顺序再次弹出,最后添加的内容首先被移除。 这些在编程中很常见 - 你可能还记得前一章中的函数调用栈,它是同一个想法的实例。