当我尝试将传递的数组的长度警告给函数时,为什么会出现错误?

时间:2014-11-06 09:54:29

标签: javascript

当我尝试将传递的数组的长度警告到函数时,为什么会出现错误: 这是代码:

<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:数据未定义

为什么我收到此错误?我做错了什么?

3 个答案:

答案 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) {