🔥 第一梯队:超高频 · 必会
1️⃣ 模板字符串 ` + ${}(ES6,现在最常用)
实际开发中拼接字符串的首选,支持变量插值和多行文本。
let name = "张三"; let age = 20; // ✅ 变量插值(最常用) let info = 姓名:${name},年龄:${age}; console.log(info); // "姓名:张三,年龄:20" // ✅ 支持表达式 console.log(明年${age + 1}岁); // "明年21岁" // ✅ 多行文本(保留换行和缩进) let html = <div class="user"> <span>${name}</span> </div>;2️⃣ split(separator, limit) — 字符串 → 数组
处理数据格式、解析 URL 参数、CSV 等场景超高频。
let str = "a,b,c,d"; // 基础分割 console.log(str.split(",")); // ['a', 'b', 'c', 'd'] // 限制个数 console.log(str.split(",", 2)); // ['a', 'b'] // 逐字分割 console.log("abc".split("")); // ['a', 'b', 'c'] // 实际场景:解析路径 let path = "/user/123/profile"; console.log(path.split("/")); // ['', 'user', '123', 'profile'] // 🔗 与 join 互逆 let arr = ['2026', '07', '31']; console.log(arr.join("-")); // "2026-07-31"3️⃣ trim() / trimStart() / trimEnd() — 去除空白
处理用户输入、接口返回数据时几乎必用。
let str = " Hello World "; console.log(str.trim()); // "Hello World" ← 最常用 console.log(str.trimStart()); // "Hello World " (去开头) console.log(str.trimEnd()); // " Hello World" (去结尾) // 实际场景:去除用户输入的前后空格 let input = " admin "; let username = input.trim(); // "admin"4️⃣ length — 获取长度
最基础的属性,判断空字符串、循环遍历等场景天天用。
let str = "Hello"; console.log(str.length); // 5 // 实际场景:判断输入是否为空 let pwd = "123456"; if (pwd.length < 6) { console.log("密码太短"); } // 遍历字符串 for (let i = 0; i < str.length; i++) { console.log(str[i]); // H e l l o }5️⃣ indexOf(searchValue, fromIndex) — 查找位置
经典查找方法,找不到返回 -1。
let str = "Hello World"; console.log(str.indexOf("World")); // 6 console.log(str.indexOf("o")); // 4 console.log(str.indexOf("o", 5)); // 7 (从索引5开始找) //获取的是下标,只是开始位置不同了,索引还是那个索引 console.log(str.indexOf("xyz")); // -1 (未找到) // 实际场景:判断是否包含 if (str.indexOf("World") !== -1) { console.log("包含 World"); }5️⃣ 续:includes() / startsWith() / endsWith()(ES6,更语义化)
includes(searchString, position):判断字符串是否包含指定子串,从 position(默认 0)开始查找。例如 "Hello World".includes("World") 返回 true,比 indexOf !== -1 的写法更清晰。
startsWith(searchString, position):判断字符串是否以指定子串开头,position 表示从哪个索引开始检查(默认 0)。例如 "Hello World".startsWith("Hello") 返回 true,常用于 URL 协议判断、路径前缀匹配等场景。
endsWith(searchString, length):判断字符串是否以指定子串结尾,length 表示只考虑前 length 个字符(默认整个字符串)。例如 "Hello World".endsWith("ld") 返回 true,常用于文件扩展名、域名后缀等场景。
let str = "Hello World"; console.log(str.includes("World")); // true ← 比 indexOf !== -1 更直观 console.log(str.startsWith("Hello")); // true console.log(str.endsWith("ld")); // true // 实际场景:URL 判断 let url = "https://api.example.com/users"; if (url.startsWith("https://")) { console.log("安全链接"); }6️⃣ slice(start, end) / substring(start, end) — 截取子串
slice 支持负数,更灵活,优先使用;substring 兼容性更好。
let str = "JavaScript"; // ✅ slice(推荐) console.log(str.slice(0, 4)); // "Java" console.log(str.slice(4)); // "Script" (省略end到末尾) console.log(str.slice(-6)); // "Script" ← 支持负数,超方便 console.log(str.slice(4, -6)); // "" // substring(不支持负数,负数当0处理) console.log(str.substring(0, 4)); // "Java" console.log(str.substring(4, 0)); // "Java" (自动交换参数) console.log(str.substring(-3)); // "JavaScript" (负数当成0) // 实际场景:提取文件扩展名 let filename = "document.pdf"; console.log(filename.slice(-3)); // "pdf"7️⃣ replace(search, replacement) / replaceAll() — 替换
let str = "Hello World World"; // 只替换第一个 console.log(str.replace("World", "JS")); // "Hello JS World" // 替换所有(ES2021) console.log(str.replaceAll("World", "JS")); // "Hello JS JS" // 配合正则替换所有 console.log(str.replace(/World/g, "JS")); // "Hello JS JS" // 实际场景:格式化手机号 let phone = "13812345678"; console.log(phone.replace(/(\d{3})(\d{4})(\d{4})/, "$1****$3")); // "138****5678"⭐ 第二梯队:高频 · 常用
8️⃣ toUpperCase() / toLowerCase() — 大小写转换
let str = "JavaScript"; console.log(str.toUpperCase()); // "JAVASCRIPT" console.log(str.toLowerCase()); // "javascript" // 实际场景:不区分大小写比较 let input = "Admin"; if (input.toLowerCase() === "admin") { console.log("登录成功"); }9️⃣ padStart(targetLength, padString) / padEnd() — 补全(ES6)
格式化数字、时间等场景非常实用。
let num = "5"; console.log(num.padStart(2, "0")); // "05" console.log(num.padStart(4, "0")); // "0005" // 实际场景:格式化时间 let hour = "9"; let minute = "5"; console.log(${hour.padStart(2, "0")}:${minute.padStart(2, "0")}); // "09:05"🔟 repeat(count) — 重复字符串(ES6)
console.log("ha".repeat(3)); // "hahaha" console.log("-".repeat(30)); // "------------------------------" // 实际场景:生成占位符 console.log("=".repeat(20)); // "===================="📌 第三梯队:中频 · 特定场景
11. concat(string2, string3, ...) — 拼接
let str1 = "Hello"; let str2 = "World"; console.log(str1.concat(" ", str2)); // "Hello World" // ⚠️ 实际开发中更常用 + 号或模板字符串 console.log(str1 + " " + str2); // "Hello World" console.log(${str1} ${str2}); // "Hello World" ← 推荐12. lastIndexOf(search, fromIndex) — 从后往前查找
let str = "Hello World"; console.log(str.lastIndexOf("o")); // 7 console.log(str.lastIndexOf("o", 5)); // 4 (从索引5往前找) console.log(str.lastIndexOf("xyz")); // -1 (未找到) // 实际场景:提取最后一个点之后的扩展名 let filename = "document.backup.pdf"; let lastDotIndex = filename.lastIndexOf("."); console.log(filename.slice(lastDotIndex + 1)); // "pdf"