vue源码——重复一个字符串n次

重复一个字符串n次, 我第一反应的思路是循环n次

但是vue源码中是这样写的

function repeat(str, n) {
  var res = ''
  while (n) {
    if (n % 2 === 1) {
      res += str
    }
    if (n > 1) {
      str += str
    }
    n >>= 1
  }
  return res
}

console.log(repeat('a', 5)) // aaaaa

这种写法的好处: 减少了循环次数
n >>= 1相当于n = Math.floor(n/2)

你可能感兴趣的:(vue源码——重复一个字符串n次)