JavaScript 新手:我可以将列表传递到这个函数中并让它仍然工作吗?
New to JavaScript: Can I pass a List into this function and have it still work?
正如标题所说,我是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;
}
我只需要知道,如果我将字符串列表传递到函数参数中,它是否仍然有效,或者当它说数组是定义它是哪种变量时?如果它当前不适用于列表,则需要更改什么?
无论参数如何命名,都可以传递任何包含字符串项的 Array 或类似 Array 的对象,并且您的函数将按预期工作。
类数组对象是一个对象,它具有值为>=0 且属性为 0..length-1 的 length
属性。类似数组的对象攻击不实现数组方法。数组可以使用a instanceof Array
或Array.isArray(a)
与类数组对象区分开来,而typeof a
在这两种情况下都返回'object'
。
当它说数组时,定义它是什么样的变量?
不。它定义参数将在函数范围内分配给的变量的名称。
JavaScript(至少是你在这里使用的ES5)对函数参数没有任何类型强制,所以你可以传递任何你喜欢的值。
该函数确实期望您传递的值是一个具有 length
属性和许多名称为整数的属性的对象(即它期望该值类似于数组(另请参阅鸭子类型))。
List 不是标准的 JavaScript 数据类型。如果您创建了一个 List 对象,那么只要它是类似数组的,您就可以传递它。
array
只是预期参数的名称。它可以是任何类型(Javascript没有类型)
所以:是的,你的列表仍然会"工作"(当然,只要它支持在其上调用的函数)
它仍然有效。真正说在javascript中,有一个数组没有这样的列表。因此,即使您使用以下参数调用函数:
makeUL(["Cpp","Java","Javascript"])
输出将是:
<ul>
<li>Cpp</li>
<li>Java</li>
<li>Javascript</li>
</ul>
我假设你的意思是数组。 但我认为您的函数只是返回一个 DOM 元素,因此除非您将其附加到 DOM 树中,否则您不会在浏览器中直接看到它。
var listofstrings = ['item 1','item 2','item 3'];
document.getElementByName('body').appendChild(makeUL(listofstring));
- 咖啡的Javascript订单总数无法使函数正常工作.请协助
- removeClass函数没有'工作不正常
- 你能解释一下这个阶乘函数是如何工作的吗?
- JavaScript链接在点击时不起作用;函数在页面加载时工作
- jQuery加载的async和ready函数不工作
- 更改智能表中的页面将停止JQuery函数的工作
- 为什么不是'我的函数在解析云代码中工作吗?当我在Angular和Express中测试时,它是有效的
- jQuery函数不能只在一个页面上工作
- 如何检查这个代码点火器php函数是否工作,该函数是否在ajax url中使用
- 从js引擎的角度来看闭包和构造函数是如何工作的
- appendChild在函数外部工作,但在函数内部不工作
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 由于某种原因,我的JavaScript函数无法工作
- 为什么递归生成器函数没有't在ES2015工作
- 我需要一个jQuery函数来只工作在700px以上的屏幕大小,无法在我的代码中发现错误
- 从控制台中的工作函数转换为工作脚本.(请参阅编辑)
- Angular JS-工作函数中的“错误:[$interpole:interr]Can't interpole:
- 简化工作函数以替换特定单词
- 为什么不在回调中工作函数?
- InnerHTML不工作:函数未定义