最常用方法是split、reverse、join三步链式调用;处理Unicode需用扩展运算符或Array.from;大字符串可用双指针原地交换;封装函数应校验类型并支持自动转字符串。

直接用 split、reverse 和 join 三步就能完成,这是最常用也最简洁的方法。
基础写法:链式调用三步法
字符串本身没有 reverse 方法,需先转成数组,再反转,最后拼回去:
- let str = "hello";
- let reversed = str.split('').reverse().join('');
- // 结果是 "olleh"
处理中文、emoji 等复杂字符
普通方法对部分 Unicode 字符(如 emoji 或组合字符)可能出错,因为 split('') 按 UTF-16 编码切分,会把一个 emoji 拆成多个码元。
- 推荐用扩展运算符:[...str].reverse().join('')
- 或使用
Array.from(str),它能正确识别 Unicode 字符 - 例如:[...'??'].reverse().join('') 得到完整倒序,而
'??'.split('').reverse().join('')可能乱序
不创建新数组的原地翻转(适合大字符串优化)
如果关注性能且字符串很长,可用双指针在字符数组中交换:
立即学习“Java免费学习笔记(深入)”;
- 先用 Array.from(str) 获取正确字符数组
- 用两个索引从首尾向中间遍历并交换
- 最后 join('') 返回结果
封装成可复用函数
写成函数更便于多次调用,还可加类型判断:
- function reverseString(str) {
- if (typeof str !== 'string') return String(str);
- return [...str].reverse().join('');
- }

















