最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JS变量及其作用域知识点介绍

来源:动视网 责编:小采 时间:2020-11-27 20:14:20
文档

JS变量及其作用域知识点介绍

JS变量及其作用域知识点介绍: 1、 变量及其作用域:变量分为全局变量和局部变量,全局变量申明在函数外部,可供所有函数使用,而局部变量申明在函数体内部,只能在定义该变量的函数体内使用。(备注:在申明变量时没有var关键字,而是直接赋值的变量均为全局变量)<
推荐度:
导读JS变量及其作用域知识点介绍: 1、 变量及其作用域:变量分为全局变量和局部变量,全局变量申明在函数外部,可供所有函数使用,而局部变量申明在函数体内部,只能在定义该变量的函数体内使用。(备注:在申明变量时没有var关键字,而是直接赋值的变量均为全局变量)<


1、 变量及其作用域:变量分为“全局变量”和“局部变量”,“全局变量”申明在函数外部,可供所有函数使用,而“局部变量”申明在函数体内部,只能在定义该变量的函数体内使用。
(备注:在申明变量时没有var关键字,而是直接赋值的变量均为全局变量)
<script type="text/javascript">
 function main() {  
 n = 10;//这里的n为全局变量,可以被外部直接使用
 }
 main();
 alert(n);
</script>

2、 在函数体内,局部变量的优先级高于全局变量。
<script type="text/javascript">
 //网上看到的我认为很有代表性的一个例子,在函数体外部和内部都申明了相同名字的变量,变量的作用域问题,例子如下:
 var n = 1;
 function test() {
 alert(n); //这里的a并不是全局变量,原因是函数体第四行申明了一个相同重名的局部变
 //量a,如果把第四行a的申明注释掉,那么这里的a显示1,为全局变量。所以得
 //出结论:全局变量a被局部变量a覆盖了。
 //说明了JS函数在test()在执行前,函数体内的变量a都指向了局部变量,但本
 //行
输出的a在执行过程中还没有被赋值,所以显示undefined。 n = 2; alert(n); var n; //本行申明局部变量a alert(n); } test(); alert(n); </script>
按照我的理解,上面例子最后输出的答案应该是:1 2 2 1;但是正确的答案是:undefined 2 2 1; 原因就是函数体外部和内部都申明了相同名字的变量时,局部变量覆盖了全局变量。
3、 外部怎么读取函数体内部的局部变量呢?
一般来说,只有函数体内部可以直接得到外部的全局变量,但是外部要得到函数体内部的局部变量是不行的。但是,通过在函数体内部再定义一个函数返回局部变量,再从外部调用函数就能实现了。
<script type="text/javascript">
 function f1() {    
 var n = 10;    
 function f2() {//在f1()内部再定义f2(),通过f2()访问f1()中的局部变量      
 alert(n);    
 }    
 return f2;//返回f1()局部变量n
 }  
 var result = f1(); //在外部调用f1()函数,就能获取局部变量n的值
 result(); // 10,即为n的值
</script>

文档

JS变量及其作用域知识点介绍

JS变量及其作用域知识点介绍: 1、 变量及其作用域:变量分为全局变量和局部变量,全局变量申明在函数外部,可供所有函数使用,而局部变量申明在函数体内部,只能在定义该变量的函数体内使用。(备注:在申明变量时没有var关键字,而是直接赋值的变量均为全局变量)<
推荐度:
标签: 介绍 知识 js
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top