You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询JS字符串反转函数工作原理:reversed = el + reversed为何能实现反转?

解惑:为什么这段JavaScript代码能把'baca'反转为'acab'?

先看你贴的这段代码:

function reverse(str) { 
  var reversed = ''; 
  for (let el of str) { 
    reversed = el + reversed; 
  } 
  return reversed; 
} 
console.log(reverse('baca')); // 输出: acab

你的困惑主要来自两个误解,咱们一个个掰扯清楚:

第一个误解:空字符串''不是带空格的字符串

var reversed = ''; 这里定义的是完全空的字符串,长度为0,没有任何字符(包括空格)。它只是作为反转操作的初始“空容器”,用来逐步拼接字符。

第二个误解:reversed = el + reversed的执行逻辑

这行代码不是把每个字符用空格隔开拼接,而是把当前遍历到的字符,放到现有结果字符串的最前面。咱们一步步模拟循环的执行过程,你就能看明白:

  • 循环开始前:reversed = ''(空容器)
  • 第一次循环(取字符'b'):reversed = 'b' + '' → 结果是'b'
  • 第二次循环(取字符'a'):reversed = 'a' + 'b' → 结果是'ab'
  • 第三次循环(取字符'c'):reversed = 'c' + 'ab' → 结果是'cab'
  • 第四次循环(取字符'a'):reversed = 'a' + 'cab' → 结果是'acab'

你看,每次都是把新字符往现有字符串的头部加,而不是尾部,这样遍历完整个原字符串后,自然就得到了反转后的结果。整个过程没有任何空格参与,所以最终输出就是acab啦。

内容的提问来源于stack exchange,提问作者sumon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:47:03