字符串基础

从本质上讲,字符串是字符的序列,它是 JavaScript 中的一种基本数据类型。字符串是不可变的(immutable),这意味着一旦创建,它就不能被更改。任何看似修改字符串的方法实际上都会返回一个全新的字符串。

您可以使用单引号('...')、双引号("...")或反引号``)来定义字符串。

要访问单个字符,可以使用括号表示法并传入一个索引。索引是从零开始的,所以第一个字符的索引是 0,第二个是 1,依此类推。

const developer = "Jessica";
console.log(developer[0]); // 输出: "J"

为了在字符串中包含多行或特殊字符,您可以使用转义序列。最常用的是 \n,它会创建一个换行符。要在字符串内部包含引号,您可以在引号前加上一个反斜杠(\)来“转义”它们,以防止 JavaScript 误解。

const poem = "Roses are red,\nJavaScript is fun.";
console.log(poem);
// 输出:
// Roses are red,
// JavaScript is fun.

const statement = "She said, \"Hello!\"";
console.log(statement); // 输出: "She said, "Hello!""

模板字面量与字符串插值

用反引号定义的模板字面量彻底改变了字符串的处理方式。它们支持字符串插值,您可以使用 ${...} 语法将变量和表达式直接嵌入到字符串中。与使用 + 运算符进行传统字符串拼接相比,这使得构建复杂的字符串更加清晰和可读。

const name = "Jessica";
const greeting = `Hello, ${name}!`;
console.log(greeting); // 输出: "Hello, Jessica!"

字符编码:ASCII

计算机并不能真正理解字母,它们理解的是数字。ASCII(美国信息交换标准代码)是一种为每个字符分配一个数字值的标准。您可以使用这个标准在字符及其数字表示之间进行转换。

  • charCodeAt() 方法在一个字符串上调用,并返回指定索引处字符的 ASCII 码
  • String.fromCharCode() 方法将一个 ASCII 码转换为其对应的字符。
const letter = "A";
console.log(letter.charCodeAt(0));  // 输出: 65

const char = String.fromCharCode(65);
console.log(char);  // 输出: "A"

其他常用字符串方法

JavaScript 提供了一系列强大的内置方法来操作字符串。以下是一些最常用的:

  • indexOf(): 这个方法用于搜索子字符串,并返回它第一次出现时的索引。如果未找到子字符串,它会返回 -1。请注意,这个方法区分大小写
    const text = "The quick brown fox jumps over the lazy dog.";
    console.log(text.indexOf("fox")); // 输出: 16
    console.log(text.indexOf("cat")); // 输出: -1
    
  • includes(): 这个方法更简单,用于检查一个字符串是否包含特定的子字符串。如果找到了,它返回 true,否则返回 false
    const text = "The quick brown fox jumps over the lazy dog.";
    console.log(text.includes("fox")); // 输出: true
    
  • slice(): 这个方法提取字符串的一部分并返回一个新字符串,不会修改原始字符串。它接受两个参数:起始索引和可选的结束索引(不包括结束索引处的字符)。
    const text = "freeCodeCamp";
    console.log(text.slice(0, 4));  // 输出: "free"
    
  • toUpperCase()toLowerCase(): 这两个方法将整个字符串分别转换为大写或小写,并返回一个新字符串。
    const text = "Hello, world!";
    console.log(text.toUpperCase()); // 输出: "HELLO, WORLD!"
    
  • replace(): 这个方法允许您找到字符串中指定的子串(如单词或字符),并将其替换为另一个值。它同样返回一个新字符串,而原始字符串保持不变,因为 JavaScript 字符串是不可变的。
    const text = "I like cats";
    console.log(text.replace("cats", "dogs")); // 输出: "I like dogs"
    
  • repeat(): 这个方法用于将一个字符串重复指定的次数。
    const text = "Hello";
    console.log(text.repeat(3)); // 输出: "HelloHelloHello"
    
  • trim()trimStart()trimEnd(): 这些方法用于移除字符串两端的空白符。trim() 移除两端的,trimStart() 移除开头的,而 trimEnd() 移除结尾的。
    const text = "  Hello, world!  ";
    console.log(text.trim()); // 输出: "Hello, world!"
    

用户交互:prompt() 方法

虽然不是标准的字符串方法,但 prompt() 方法是获取用户字符串输入的好方法。它会创建一个简单的对话框,其中包含一条消息和一个输入框。
[一个提示对话框的图片,上面写着 “What’s your name?” 和一个文本输入框]

const name = window.prompt("What's your name?", "Guest");
console.log(`Hello, ${name}!`);

请记住,prompt() 会暂停脚本的执行,直到用户做出响应,并且它通常用于简单的应用程序或快速测试。

掌握这些基础知识和方法将使您能够处理 JavaScript 中几乎所有的文本相关任务。祝您编码愉快!

更多推荐