我对使用javascript while语句感到困惑

时间:2016-07-26 11:47:25

标签: javascript

我最近选择了一些javascript代码 - 因为我不是js专家,一旦我开始运行,我就喜欢它,以便我能更好地理解。

以下是代码:

function checkCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(";");

    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];

        while (c.charAt(0) == " ") c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);

    return null;
}

令人困惑的是堆叠的while和if语句 - 如果我添加大括号,我会得到一个更清晰的图像:

        while (c.charAt(0) == " ") {
            c = c.substring(1, c.length);
        }
        if (c.indexOf(nameEQ) == 0) {
            return c.substring(nameEQ.length, c.length);
        }

但是我无法理解的是为什么会使用while语句 - 肯定是'if'会更合适 - 或者我的括号错了吗?

澄清会很棒。

2 个答案:

答案 0 :(得分:1)

如果你有一个以多个空格开头的文本,首先你会得到c.charAt(0) == " "为真,然后删除第一个字符。然后字符串开头的字符将是您最初拥有的第二个空格,因此它仍然是真的并且空格将被删除。这将一直持续到你开始没有任何空间为止。

答案 1 :(得分:1)

我希望这个答案会让你更清晰。

我发布了答案,因为我无法添加评论:)

如果声明: -

if语句检查表达式是true还是false,然后仅在语句中为true运行代码。循环中的代码只运行一次......

声明: -

while语句是一个循环。基本上,它继续执行while语句中的代码,无论表达式是多长时间。

何时使用while循环:

虽然当你不确切知道循环条件的次数时,最好使用循环 - 如果你确切地知道要测试条件的次数(例如10),那么你会使用而是一个for循环。