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


          网页标题:JavaScript中不同函数可以定义相同变量名吗
          新闻来源:http://cdiso.cn/article/jpocod.html

          其他资讯