搜索
写经验 领红包
 > 职场

javascipt变量作用域(javascipt变量的作用)

导语:javaScript 变量作用域

javascript变量作用域(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

本文内容由快快网络小思创作整理编辑!