Javascript中局部变量和全局变量之间的差异的详细解释

Javascript中有两个变量:局部变量和全局变量。当然,我们的文章是帮助人们真正区分这两个变量。



首先,局部变量是一个只能在变量声明的函数中调用的函数。在使用全局变量时,可以在整个代码中调用这个变量。当然,从字面理解上看,这一点当然不清楚。

大家都知道,变量需要用var关键字声明。但是Javascript也可以隐式使用,这是不直接声明和使用的。另外,要知道Javascript总是使用隐式声明变量作为全局变量。

例如:

复制代码代码如下所示:

函数名字(){

我= 'yuanjianhang;

}

MyName();

功能sayname(){

警报(一);

}

sayname();



输出的结果是:yuanjianhang

这表明变量i是一个全局变量,如果上述代码被更改为如下所示:

复制代码代码如下所示:

函数名字(){

var i = 'yuanjianhang;

}

MyName();

功能sayname(){

警报(一);

}

sayname();



在这个时候,旅游设备将不会输出任何结果,因为我是我定义的功能,所以它只是一个局部变量的名字,它不能被称之为外部。



现在回头看看下面的代码:

复制代码代码如下所示:

函数名字(){

我= 'yuanjianhang;

}

MyName();

功能sayname(){

警报(一);

}

sayname();



现在,让我们为我做出改变();摆脱代码如下:

复制代码代码如下所示:

函数名字(){

我= 'yuanjianhang;

}

功能sayname(){

警报(一);

}

sayname();



在这一点上,访客将不会做出反应。因为我是全局变量,但功能我()没有被调用,所以这无异于宣布我,不给我任何价值,所以没有输出。

同样,如果上述更改:



复制代码代码如下所示:

函数名字(){



我= 'yuanjianhang;

}

功能sayname(){

警报(一);

}

sayname();

MyName();



在这种情况下,它将不输出任何结果。当Javascript代码的执行是从上到下,当sayname()函数被调用时,它会在那个时候检查变量i的值,函数的名字还没有被执行,也就是说,我没有被分配,所以不会输出任何结果。



为了让你更容易理解,这里还有一个例子。

复制代码代码如下所示:

var i = 'yuanjianhang;

功能mylovename(){

我= 'guanxi;

}

MyloveName();

函数名字(){

警报(一);

}

MyName();



这次的结果是什么

答案是Guanxi。

首先,我是yuanjianhang原始值,但当mylovename()函数被调用,在我改变关系的价值,所以最终输出结果的关系。



如果代码更改为:

复制代码代码如下所示:

var i = 'yuanjianhang;

功能mylovename(){

var i = 'guanxi;

}

MyloveName();

函数名字(){

警报(一);

}

MyName();



其结果是yuanjianhang,因为两我的代码是不一样的,是一个全球性的,一个是本地的,这是可以理解的,虽然我的名字一样,但本质上的我是不一样的,似乎有两个名字一样的男人,虽然名称相同,但不一样的人。

如果代码更改为这种方式:

复制代码代码如下所示:

var i = 'yuanjianhang;

功能mylovename(){

我= 'guanxi;

}

函数名字(){

警报(一);

}

MyName();

MyloveName();



我相信你能算出的结果的话,结果是yuanjianhang。

由于一个全局变量可以在函数中调用,下面是这样的例子:

复制代码代码如下所示:

var i = 'yuanjianhang;

功能mylovename(){

我= 'guanxi;

警报(一);

}

MyloveName();



此时变量的值是多少

让我们来分析一下。

首先,我被分配到全局变量:袁建航。

接下来的mylovename()函数被调用,和全局变量,我被赋予新的价值:Guanxi

因此,结果必须是:关系。

如果我们像这样提前警觉:

复制代码代码如下所示:

var i = 'yuanjianhang;

功能mylovename(){

警报(一);

我= 'guanxi;

}

MyloveName();



此时的结果是什么

验证结果为:未定义

如果代码是这样的怎么办:

复制代码代码如下所示:

var i = 'yuanjianhang;

功能mylovename(){

警报(一);

}

MyloveName();



在这个时候,我的结果是:yuanjianhang

为什么未定义的情况在上面,因为代码的执行顺序是从上到下,并且在I输出之前没有一个i的定义,所以从这里你可以看到当代码被使用时,变量的声明必须放在代码前面避免类似的问题!

以同样的方式:

复制代码代码如下所示:

var i = 'yuanjianhang;

功能mylovename(){

警报(一);

var i = 'guanxi;



}

MyloveName();



在这种情况下,它也将被导出:未定义的

我只是对变量有很多介绍,我相信任何人都可以看到它。不管代码是如何复制的,核心都不会改变。

以上就是本文的全部内容。我们的合作伙伴对Javascript中的局部变量和全局变量之间的区别有了更深的理解吗祝你新年快乐!