正如标题所说,我是JavaScript的新手,并不完全确定某些语法。
在找了一会儿后,我找到了以下功能:
function makeUL(array) {
// Create the list element:
var list = document.createElement('ul');
for (var i = 0; i < array.length; i++) {
// Create the list item:
var item = document.createElement('li');
// Set its contents:
item.appendChild(document.createTextNode(array[i]));
// Add it to the list:
list.appendChild(item);
}
// Finally, return the constructed list:
return list;
}
我需要知道的是,如果我将一个字符串列表传递给函数参数,它是否仍然可以工作,或者当它说数组是定义它是什么类型的变量?如果它目前不适用于List需要改变什么?
答案 0 :(得分:1)
当它说数组是定义它是什么样的变量?
没有。它定义了参数将在函数范围内赋值的变量的名称。
JavaScript(至少你在这里使用的ES5)没有函数参数的任何类型强制执行,所以你可以传递你喜欢的任何值。
该函数确实希望您传递的值是一个具有length
属性的对象和一些名称为整数的属性(即它希望该值类似于一个数组(另见duck typing))。
列表不是标准的JavaScript数据类型。如果您已经创建了一个List对象,那么只要它是类似数组就可以传递它。
答案 1 :(得分:1)
array
只是预期参数的名称。
它可以是任何类型(Javascript没有类型)
所以:是的,你的清单仍然会#34;工作&#34; (当然,只要它支持在其上调用的函数)
答案 2 :(得分:1)
您可以传递任何包含字符串项的数组或类数组对象,无论参数如何命名,您的函数都将按预期工作。
类似于数组的对象是一个对象,具有length
属性,值&gt; = 0 且属性 0..length- 1 。类似于数组的对象offen 不实现Array方法。可以使用a instanceof Array
或Array.isArray(a)
将数组与类似数组的对象区分开,而typeof a
在两种情况下都返回'object'
。
答案 3 :(得分:0)
它仍然可以使用。真的在javascript中说有一个数组没有这样的列表。因此,即使您使用以下参数调用该函数:
makeUL(["Cpp","Java","Javascript"])
输出结果为:
<ul>
<li>Cpp</li>
<li>Java</li>
<li>Javascript</li>
</ul>
答案 4 :(得分:0)
我假设您的意思是Array。但我认为你的函数只是返回一个DOM元素,所以你不会直接在浏览器中看到它,除非你将它附加到DOM树中。
var listofstrings = ['item 1','item 2','item 3'];
document.getElementByName('body').appendChild(makeUL(listofstring));