首页 > 编程知识 正文

外部变量和全局变量区别,php 全局变量

时间:2023-05-04 14:55:46 阅读:37252 作者:160

另一方面,使用var宣言的是局部变量,但在全局作用域中使用var时,会像不使用var一样宣言全局变量。

a=1; //全局变量var a=1; //全局变量全局变量相当于window对象的属性,可以使用window .属性名称访问进行修改。

二、在局部作用域中,使用var声明局部变量,如果不使用var则声明全局变量。

function fun () {var a=1; (fun ); 控制台. log (a; //undefined三、对比

示例1 :

var a=1; //全局变量function fun () {var a=2; //局部变量与全局变量同名,但这是在函数体内部声明的全新变量,与全局中的a无关,为console.log(a ); //值为2 ) fun ); 控制台. log (a; //值为1,函数内部的局部变量a为2,但与全局变量的a不同,且在函数执行后被废弃,所以这里输出的a是全局变量的例子2 :

var a=1; //全局变量function fun () a=2; 因为没有使用//var,所以这里直接参照全局变量a来修改其值,没有声明新的局部变量console.log(a )。 //值为2 ) fun ); 控制台. log (a; //值为2。 因为函数执行结束后空间会被废弃,但函数改变了全局变量a的值例3。

var a=1; 函数fun () console.log ) ) a; //值为1,在本地环境中没有变量a,因此沿着范围链向上找到全局变量a并直接引用。 范围链本质上是指向变量对象的指针列表,因此引用但不包括实际的变量对象。 (四、对象属性与全局变量的关系

全局变量相当于窗口对象的属性,可以作为变量or属性进行访问。 其他对象的属性只能作为属性存在(调用)。 他们本质上是两个变量,所以不会互相覆盖。

示例1 :

a=1; window.avar obj=new Object (声明相当于的全局变量//创建常规对象实例obj.a=2与全局变量a同名的console.log(obj.a ) ) //输出2,因为这两个a不同,所以一个是全局变量a,另一个是对象的属性a例2 :

声明function Foo () {getName=function ) } /全局变量,函数console.log(1) )1); 返回时间; } foo.getname=function (将getname属性添加到/foo函数对象,并赋值函数console.log(2) ); } foo.prototype.getname=function () console.log ) ) 3; }var getName ()=function ) ) /声明全局变量,函数console.log(4) ) 4; }function getName () /在全局范围下声明函数console.log(5); }! 开始调用---函数--Foo.getName (; //输出2,此时调用的getName不是由全局变量getName定义的函数,而是Foo函数对象的属性getNamegetName (; //输出4,此时保存在全局变量getName中的函数Foo ().getName ); 输出//1,此时调用Foo函数将全局变量getName的值设定为getName (); 输出//1。 同样,通过调用Foo函数,全局变量getName的值变为new Foo.getName (;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。