JavaScript中不同函数可以定义相同变量名吗(javascript,函数,变量名,web开发)

时间:2024-05-09 23:08:23 作者 : 石家庄SEO 分类 : web开发
  • TAG :

    JavaScript%E4%B8%AD%E4%B8%8D%E5%90%8C%E5%87%BD%E6%95%B0%E5%8F%AF%E4%BB%A5%E5%AE%9A%E4%B9%89%E7%9B%B8%E5%90%8C%E5%8F%98%E9%87%8F%E5%90%8D%E5%90%97

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

举例:

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中不同函数可以定义相同变量名吗的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:php中的错误处理与异常处理机制介绍下一篇:

17 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18