javascript中的函数参数-本地或全局
我是一名新的学习者,正在学习编写前端开发代码。我想知道JavaScript函数中的全局变量和局部变量。我理解局部和全局,但是函数参数呢,它们是局部的还是全局的 我应该总是将函数定义为javascript中的函数参数-本地或全局,javascript,Javascript,我是一名新的学习者,正在学习编写前端开发代码。我想知道JavaScript函数中的全局变量和局部变量。我理解局部和全局,但是函数参数呢,它们是局部的还是全局的 我应该总是将函数定义为函数添加(a,b)还是 函数添加(变量a、变量b) 我在某个地方读到,任何在函数中没有var关键字定义的变量都是全局变量。这一点让我困惑。第一点功能添加(a,b) 使用var关键字up实际上存在语法错误 我在某个地方读到,任何在函数中没有var关键字定义的变量都是全局变量 这是真的,但只有当您执行c='somethi
函数添加(a,b)
还是
函数添加(变量a、变量b)
我在某个地方读到,任何在函数中没有var关键字定义的变量都是全局变量。这一点让我困惑。第一点<代码>功能添加(a,b) 使用
var
关键字up实际上存在语法错误
我在某个地方读到,任何在函数中没有var关键字定义的变量都是全局变量
这是真的,但只有当您执行
c='something'
时才可以。函数参数始终在本地范围内。第一个参数<代码>功能添加(a,b)
使用var
关键字up实际上存在语法错误
我在某个地方读到,任何在函数中没有var关键字定义的变量都是全局变量
这是真的,但只有当您执行
c='something'
时才可以。函数参数总是局部作用域。参数是函数的局部,但这只是事实的一半,因为对象是通过引用传递的。因此,如果您的函数接受一个对象并修改该对象的任何成员,那么更改也会在函数外部看到(因为它是同一个对象)
在节点外壳中尝试以下操作以演示:
var obj = { a:0 };
obj;
function f(o) { o.a++; }
f(obj);
obj;
$node
var obj={a:0}
未定义
obj
{a:0}
函数f(o){o.a++}
未定义
f(obj)
未定义
obj
{a:1}
参数是函数的局部参数,但这只是事实的一半,因为对象是通过引用传递的。因此,如果您的函数接受一个对象并修改该对象的任何成员,那么更改也会在函数外部看到(因为它是同一个对象) 在节点外壳中尝试以下操作以演示:
var obj = { a:0 };
obj;
function f(o) { o.a++; }
f(obj);
obj;
$node
var obj={a:0}
未定义
obj
{a:0}
函数f(o){o.a++}
未定义
f(obj)
未定义
obj
{a:1}
在函数中添加(a,b)
a和b只能在函数中访问,因此它们是该函数的本地对象
函数添加(变量a、变量b)
语法不正确。您不能将var放在那里。在函数中添加(a,b)
a和b只能在函数中访问,因此它们是该函数的本地
函数添加(变量a、变量b)
语法不正确。您不能将var放在那里。您必须声明一个函数,例如函数add(a,b)。a和b是在调用函数时提供给函数的参数
它们在声明时不存在,并且是变量的局部变量。它们或多或少是对调用函数时传递给函数的变量的引用
var num1=4;
var num2=3;
功能添加(a、b){
返回a+b;
}
var结果=相加(num1,num2);
//结果:7
您必须声明一个函数,例如函数add(a,b)。a和b是在调用函数时提供给函数的参数
它们在声明时不存在,并且是变量的局部变量。它们或多或少是对调用函数时传递给函数的变量的引用
var num1=4;
var num2=3;
功能添加(a、b){
返回a+b;
}
var结果=相加(num1,num2);
//结果:7
函数添加(var a,var b){}
语法不正确,总是函数添加(a,b){}
。您在哪里看到带有var
关键字的参数?这是不允许的语法。函数参数仅限于函数的作用域,感谢您的澄清。现在我将始终记住,括号内不允许使用var关键字。function add(var a,var b){}
语法不正确,它总是function add(a,b){}
。您在哪里看到带有var
关键字的参数?这是不允许的语法。函数参数仅限于函数的作用域,感谢您的澄清。现在我将永远记住,括号内不允许使用var关键字。感谢您的帮助,这一点变得很清楚。。我对C++语法感到困惑。谢谢你的帮助,它变得清晰了。我对C++语法感到困惑。