字符串(string)用于保存文本。JavaScript 字符串可以放在单引号、双引号或反引号中。反引号创建模板字符串,可以使用 ${表达式} 插入值。
const name = "Mina";
const message = `Hello, ${name}!`;
console.log(message);长度与字符
length 属性返回字符数量。方括号可以按从 0 开始的下标读取字符;超出范围会得到 undefined。
const text = "JavaScript";
console.log(text.length); // 10
console.log(text[0]); // J
console.log(text[text.length - 1]); // t字符串不可变(immutable):已有字符串中的字符不能原地修改。拼接或调用字符串方法会产生一个新字符串。
截取、查找与替换
slice(start, end) 截取从 start 到 end 之前的内容。indexOf(value) 返回第一次匹配的位置,找不到时返回 -1。replace(oldValue, newValue) 返回替换后的新字符串。
const text = "learn JavaScript";
console.log(text.slice(6, 16)); // JavaScript
console.log(text.indexOf("Java")); // 6
console.log(text.replace("learn", "use"));互动实验
JavaScript 字符串方法实验台
访问权限免费
选择一个方法,观察调用表达式、返回值,以及原字符串是否改变。
L0e1a2f3l4e5t6␠7c8o9u10r11s12e13
text.length;14
返回字符数量,空格也算一个字符。
比较与大小写
使用 === 比较两个字符串的内容。比较时区分大小写,可以先调用 toLowerCase() 或 toUpperCase() 统一形式。
const answer = "YES";
if (answer.toLowerCase() === "yes") {
console.log("accepted");
}知识测验
题目
关于 JavaScript 字符串,哪项说法正确?
知识测验
题目
"program".slice(2, 5) 的结果是什么?
知识测验
题目
indexOf() 找不到目标文本时返回什么?
动手练习
生成用户名
读取由单个单词组成的名和姓,使用 String 生成用户名“名.姓”,并同时输出用户名长度。
- 使用 prompt() 分别读取 first 和 last。
- 拼接 first + "." + last。
- 输出用户名以及 username.length。
动手练习
提取邮箱域名
读取一个邮箱样式字符串,提取 @ 后面的域名;缺少 @ 或域名为空时输出错误。
- 使用 indexOf 查找 @ 的位置。
- 检查返回值是否为 -1,并确认 @ 后还有字符。
- 使用 substring(position + 1) 提取并输出域名。
动手练习
实现一次文本替换
读取原文本、要查找的片段和替换片段,只替换第一次出现的位置。
- 使用 indexOf 获得第一次匹配的位置。
- 未找到时保持原文本并输出提示。
- 找到时用 substring 组合替换位置前后的内容并输出结果。