它被定义为函数中的一个全局变量,它被定义为函数中的局部变量。

Javascript有一个隐含的全局概念,这意味着任何未声明的变量都将成为全局对象属性:

复制代码代码如下所示:

函数测试(){

我=哼;

警报(名字);

}

(测试); / /哼

警报(名字); / /哼



两者的结果是相同的,说明我是一个全局变量。

然后,隐式全局变量和定义明确的全局变量之间没有区别,答案当然是这样,看看下面的例子:

复制代码代码如下所示:

定义三个全局变量

无功global_test1 = 1;

global_test2 = 2; / /例子

(函数(){())

global_test3 = 3; / /例子

}();

尝试删除

删除global_test1; / /假

删除global_test2; / /真的

删除global_test3; / /真的

测试删除

警报(typeof global_test1 / /数);

警报(typeof global_test2); / / 的定义

警报(typeof global_test3); / / 的定义



从上面的例子,我们可以看到,global_test1定义VaR不能删除外部函数,但并没有global_test2 global_test3 VaR的定义已被删除(无论是在函数体中创建)。

总之,不能通过函数中的var声明的全局变量被删除,并且可以删除隐式全局变量。

这里要注意的是:Javascript是一种称为提升的行为(悬浮/顶部/预分析分析)。

我们举例说明:

复制代码代码如下所示:

var myName =哼; / /声明全局变量

函数测试(){

警报(名字);

var myName =local_huming ;

警报(名字);

}

测试();



你猜两个警报的内容是一致的吗很明显,它是不一致的。实际输出是:未定义

上述示例相当于

复制代码代码如下所示:

var myName =哼; / /声明全局变量

函数测试(){

VaR的名字;

警报(maname);我=local_huming ;

警报(名字); / / 的地方

}

测试();



的第一个警报输出我的名字不是一个全局变量,你想,但局部变量在一个范围(函数体)。虽然还没有宣布,它被视为一种宣言。这就是所谓的提升。

应该理解的是,当你在函数体中使用一个变量,然后再回收它时,你会犯错误。

写作规范:

复制代码代码如下所示:

函数测试(){

var a=1,

b=2,

C = A + B,

d = },

E,

F;

函数…

}





好处是:

1。在函数的开始处定义所有局部变量,以方便搜索。

2,以防止在定义变量之前使用的逻辑错误。

合作伙伴知道Javascript的变量声明吗以上内容非常详细,易于理解。最后的总结也很中肯,所以不要错过。