此停止标准(for-loop)如何工作



我正在寻找一种方法,将输入从我的HTML表单到我的javascript代码中,中间没有服务器,并在Stackoverflow上找到了这篇文章:如何在没有服务器的情况下使用 HTML 表单

在那里,第一个答案包括以下链接到js.fiddle上的代码示例:http://jsfiddle.net/wG8K4/1/

function updateBackgroundColor(color) {
  document.body.style.backgroundColor = color;
}
function displayFormContents(someForm) {
 var out = '';
    for (var i=0, el; el = someForm.elements[i]; i++) {
        if (el.name) {
            out += el.name + ' = ' + el.value + 'n';
        }
    }
 alert(out);
}
<form>
 <select name='gender' onchange='updateBackgroundColor(this.value);return false;'>
 <option value=''>Select A Gender</option>
 <option value='blue'>Male</option>
 <option value='pink'>Female</option>
 </select><br/>
 type your nickname: <input type='text' name='nickname' /><br />
 <input type='button' value='Display Form Contents' onclick='displayFormContents(this.form);return false;' />
 </form>

我已经在自己的代码中尝试了这种方法,它有效。但是,我不明白这个停止标准是如何工作的 Oo

el = someForm.elements[i]

当索引命中不再有相应数组元素的值时,此停止条件是否启动(因此数组可能返回类似undefined/false的内容(?我想是的,因为我还可以观察到循环只迭代 2 次(索引 0 和 1(。但是,我无法验证这个假设,这就是我想在这里问的原因。

el = undefined undefined这是一个停止循环的虚假值。

这意味着一旦i大于或等于someForm.elements.length(当someForm.elements[i] undefined时(,循环就会停止。

最新更新