当我尝试将传递的数组的长度警告到函数时,为什么会出现错误: 这是代码:
<div>
<button onclick = "CreatTable()">click me!</button>
</div>
<script type ="text/javascript">
var data = ['First Name', 'Last Name', 'Email'];
function CreatTable(data) {
alert(data.length);
}
</script>
在这一行:
警报(data.length);
我收到此错误:
TypeError:数据未定义
为什么我收到此错误?我做错了什么?
答案 0 :(得分:3)
您将名称data
重新绑定到函数参数。并且没有任何争论地调用它。当然data
未定义。
function CreatTable() { //use scoped variable data.
alert(data.length);
}
答案 1 :(得分:1)
<div>
<button onclick = "CreatTable()">click me!</button>
</div>
<script type ="text/javascript">
var data = ['First Name', 'Last Name', 'Email'];
function CreatTable() {
alert(data.length);
}
</script>
将data
作为参数传递给CreatTable
,或将其删除,它将引用您定义的data
数组。
答案 2 :(得分:1)
您在没有参数的情况下调用该函数
CreatTable()
而你的函数定义以data
为参数。
因为data
是一个全局变量,所以只需从函数定义中删除它:
写function CreatTable() {
而不是
function CreatTable(data) {