JavaScript循环中.length -1与.length的关系

时间:2016-02-16 15:49:38

标签: javascript loops

我创建了一个函数来演示如何反转字符串:

 var reverseString = function(str) {

        var reverseStr = '';

        for (var i = str.length - 1; i >= 0; i--) {
            reverseStr += str[i];
        }

        return reverseStr;
 };

reverseString('javaScript'); //returns "tpircSavaj"

当我通过每一行来了解发生了什么事时,我很快就对这部分感到困惑:

        for (var i = str.length - 1; i >= 0; i--) 

当你从字符串中的最后一个位置开始时,不会使用str.length更有意义。在这种情况下t

您从-1.length开始的原因是因为当您使用j进入.length时,它会导致犯罪环。我可以想象它但不能恰当地表达它。

提前致谢!

2 个答案:

答案 0 :(得分:1)

这基本上是因为字符串的第一个位置是0,基于零。我给你举个例子:

var s = 'a';

s的长度为1.但s [1]未定义。但是s [0]等于'a'。

答案 1 :(得分:0)

那是因为长度从1开始计数,但是当访问字符串第一个元素时,你需要从0开始,就像在数组中一样。