【发布时间】:2016-07-26 11:47:24
【问题描述】:
我最近拿起了一些 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' 更合适 - 还是我的括号弄错了?
澄清会很棒。
【问题讨论】:
-
您正在使用 while 语句来删除开头的所有空格。 if 语句只会删减一次!此外,如果正文只有一行,则大括号是可选的:)
-
您循环删除 c 开头的每个空格。它是字符串 c 的左修剪。
-
.trim()是您应该使用的。看来你正在修剪字符串。 -
@Jai
.trim()可能是对的,但我们确定他还想删除字符串末尾的空格吗?
标签: javascript