> 职场
javascipt变量作用域(javascipt变量的作用)
导语:javaScript 变量作用域
全局变量与局部变量
定义在函数外面的变量,称为全局变量,定义在函数里面的变量称为局部变量。例如函数中使用var定义的变量和参数都是局部变量。
定义变量
早期的原生js不需要使用var就可以定义变量,因为他们认为window.变量,所有的变量都是window的属性,而window是可以省略的,所有没有var可以使用,但是到了ES5的后期, 严格要求的代码规范不允许无声明就使用变量,没有var是不行的 。
实例1
var a=3; function abc(){ console.log(a); //结果:undefined // 在当前函数中使用var定义了局部变量,那么在当前函数中任何位置调用的都是局部变量,全局变量是无法获取的 var a=5; console.log(a); // 局部变量不会覆盖全局变量,但在函数中打印临时变量。结果:5; console.log(window.a+a); // window.a就是全局变量a,后面的a是局部变量a,结果:3,5 }
函数中的局部变量在函数外不可调用,仅可在函数中使用。
函数中可调用全局变量。
一旦函数中的局部变量名和全局变量名相同,在函数中使用的变量都是局部变量
实例2
var a=1;function a(a){ console.log(a);//(2) var a=3; console.log(a);//(3)}console.log(a);//(1) 1a(10); //1不是一个函数所有报错
变量与函数不可重名
代码解释:命名函数在代码中定义以后,script被执行时,会自动将函数放在堆中并且将函数存储在栈中的全局变量,定义函数全局是最为优先,最早的当代码执行到第1行 var a=1时,才开始重新定义变量a,而这个变量a与栈中的全局函数a重名,因此变量a就会覆盖全局函数a
本文内容由快快网络小思创作整理编辑!