0

我正在用JavaScript做一个小工作,我想避免出现问题,所以我事先询问。

考虑到其中一个函数调用另一个函数,我可以使用两个不同的变量并在不同的函数中将它们命名为相同吗?

那么,当我在第二个函数中定义变量时,它会解释为两个不同的变量,还是会重写第一个函数中原始变量的值?(或者,是否会因为同名的变量已经存在而引发错误?)

这是一个例子:

function first()
{
var a = somevalue;
second();
}

function second()
{
var a = differentvalue;
}

谢谢!

4

2 回答 2

3

在函数内声明的变量是该函数的本地变量,不会与其他任何地方的同名变量冲突。

你甚至可以拥有一个同名的全局变量,而函数内部的代码只会看到局部变量。

例子:

var a; // global variable

function first() {
  var a; // local variable in first
  second();
}

function second() {
  var a; // local variable in second
}

(当然应该尽可能少地使用全局变量,但很高兴知道您可以拥有一个不受可能存在的任何全局变量影响的局部变量。)

函数内部的局部变量不仅是函数的局部变量,它实际上也是函数执行的局部变量。如果再次调用该函数,则会创建一个新变量,并且如果该函数调用自身(递归),则每个级别都会有自己的变量。

于 2013-03-27T14:16:38.907 回答
2

是的,你可以,只要你不忘记var关键字 :变量的范围要么是声明它的函数,要么是全局范围。无法从函数外部访问它们声明的变量。

于 2013-03-27T14:06:20.877 回答