当我在函数参数中声明一个新变量时出现错误:为什么?

时间:2013-01-10 11:30:35

标签: javascript function arguments syntax-error

对于带参数的函数:

function displayCouplet(var couplet) {
   document.write(couplet);
}

displayCouplet("The object of my worship lies beyond perception's reach,For men who see, the Ka'aba is a compass, nothing more.");

显示错误 Uncaught SyntaxError:Unexpected token var 。这是为什么 ?如果我从参数中省略关键字var,那么它就可以了。请解释一下这是为什么?

3 个答案:

答案 0 :(得分:2)

你的问题是两个人分开了。

首先,您尝试使用关键字function声明var。 这是错误的。

正确的方法是

function displayCouplet(couplet) {
    //write your body here
}

其次定义变量不是在函数参数中完成的,它是在函数体内完成的。 再次,正确的方法是

function displayCouplet(couplet) {
    //write your body here
    var myOtherCouplet = "whateverACoupletIs";
}

编辑:

传递给函数的参数隐式地创建为函数中的局部变量。

function displayCouplet(couplet) {
    //write your body here
    var myOtherCoupletCopy = couplet;
}

您的函数中需要的新变量应使用var声明,省略var关键字将创建一个全局变量。

而且你已经想通了,你可以称之为这个功能。 :)

答案 1 :(得分:1)

您不需要var。函数参数隐式地成为局部变量。 并且您声明了一个function而不是var

的函数
function displayCouplet(couplet) {
   document.write(couplet);
}

答案 2 :(得分:0)

将第一个var更改为function并删除第二个var,然后它应该有效!