news 2026/10/10 2:27:23

JavaScript String 实战速查手册(按使用频率排序)(重点是string函数)这一节课

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JavaScript String 实战速查手册(按使用频率排序)(重点是string函数)这一节课

🔥 第一梯队:超高频 · 必会

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,更语义化)

  1. includes(searchString, position):判断字符串是否包含指定子串,从 position(默认 0)开始查找。例如 "Hello World".includes("World") 返回 true,比 indexOf !== -1 的写法更清晰。

  2. startsWith(searchString, position):判断字符串是否以指定子串开头,position 表示从哪个索引开始检查(默认 0)。例如 "Hello World".startsWith("Hello") 返回 true,常用于 URL 协议判断、路径前缀匹配等场景。

  3. 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"
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/10 2:25:34

Stable Preference Optimization for LLMs: A Bilevel Approach Beyond Direct Preference Optimization

文章主要内容和创新点 主要内容 本文聚焦于大型语言模型(LLMs)的偏好对齐问题,针对直接偏好优化(Direct Preference Optimization, DPO)方法的局限性展开研究。 DPO的局限性分析:从概率演化角度对DPO进行了全面理论分析,发现DPO存在三大问题:对初始化高度敏感;可能导…

作者头像 李华
网站建设 2026/10/10 2:24:49

逆向过程技巧分享

1、ua修改当遇到请求需要需要ua时&#xff0c;但是数据又存在加密&#xff0c;需要快速获取数据的情况下可以先点击wifi那个图标&#xff0c;然后Network conditions&#xff0c;下面的user agent 去掉勾选的默认 Use browser default&#xff0c;就可以在下方填入…

作者头像 李华
网站建设 2026/10/10 2:23:51

网约车租车实力机构靠谱商家测评排名

网约车租车实力机构靠谱商家测评排名&#xff1a;合规车队、充电配套、押金透明一个都不能少开篇导语在上海跑网约车&#xff0c;选对一家合规、透明、配套齐全的租车机构&#xff0c;是新手入行与全职司机稳定运营的第一步。上海滴美汽车租赁有限公司(简称滴美汽车租赁)是一家…

作者头像 李华