JavaScript中不同函数可以定义相同变量名吗-创新互联

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中不同函数可以定义相同变量名有进一步的了解吗?如果还想了解更多相关内容,欢迎关注创新互联成都网站设计公司行业资讯频道,感谢各位的阅读。

          另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


          名称栏目:JavaScript中不同函数可以定义相同变量名吗-创新互联
          分享路径:http://scyanting.com/article/jehsd.html