JavaScript中不同函数可以定义相同变量名吗

发布时间:2020-06-22 21:21:49 作者:元一
来源:亿速云 阅读:550

JavaScript中不同函数可以定义相同变量名吗?可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

JavaScript中不同的函数中可以定义相同的变量名,因为是在函数体内部定义的,属于局部变量,外界是访问不到的。所以是可以的。

举例:

var a = 1;
function b(){
    a = 10;
    return;
      function a(){
      console.log(a);
        }
        }

          b();

          console.log(a);

          这题打印出a的值为多少呢?可能会有很多的同学认为打印出的值为10,但其实并不是,为什么呢?

          误区1:变量提升

          我想大家都明白,在执行函数b的时候,由于其内部有一句a=10,前面并没有var,所以在执行完函数b之后,认为变量a提升为全局变量,并且10这个值覆盖了之前的1。所以打印出的值为10。我想的话这是多数新手的思路。

          这里有个知识点:

          显示声明:var a = 1;

          隐式声明:a = 1;

          隐式声明会变量提升为全局变量

          误区2:不知道函数声明也是有提升的

          多数新手认为在执行函数b的时候,js执行代码自上往下,执行到return的时候退出函数,不再执行函数a,所以认为这个函数a根本不起作用。

          拓展知识:

          全局变量和局部变量的区别如下:

          1. 作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等

          2. 内存存储方式不同:全局变量存储在全局数据区中,局部变量存储在栈区

          3. 生命期不同:全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了

          4. 使用方式不同:全局变量在声明后程序的各个部分都可以用到,但是局部变量只能在局部使用。函数内部会优先使用局部变量再使用全局变量。

          局部变量可以与全局变量重名,但是局部变量会屏蔽全局变量。

          全局变量是编程术语中的一种,源自于变量之分。

          变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。

          全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。

          看完上述内容,你们对JavaScript中不同函数可以定义相同变量名有进一步的了解吗?如果还想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读。

          推荐阅读:
          1. JavaScript如何定义函数
          2. JavaScript中变量名与函数名的关系是什么

          免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

          javascript 函数 变量名

          上一篇:MySQL Index Extensions

          下一篇:jquery中动态绑定事件的方法

          相关阅读

          您好,登录后才能下订单哦!

          密码登录
          登录注册
          其他方式登录
          点击 登录注册 即表示同意《亿速云用户服务条款》