我最近选择了一些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'会更合适 - 或者我的括号错了吗?
澄清会很棒。
答案 0 :(得分:1)
如果你有一个以多个空格开头的文本,首先你会得到c.charAt(0) == " "
为真,然后删除第一个字符。然后字符串开头的字符将是您最初拥有的第二个空格,因此它仍然是真的并且空格将被删除。这将一直持续到你开始没有任何空间为止。
答案 1 :(得分:1)
我希望这个答案会让你更清晰。
我发布了答案,因为我无法添加评论:)
如果声明: -
if语句检查表达式是true还是false,然后仅在语句中为true运行代码。循环中的代码只运行一次......
声明: -
while语句是一个循环。基本上,它继续执行while语句中的代码,无论表达式是多长时间。
何时使用while循环:
虽然当你不确切知道循环条件的次数时,最好使用循环 - 如果你确切地知道要测试条件的次数(例如10),那么你会使用而是一个for循环。