标签:span ons 使用 全局变量 一个 rgb 优先级 函数 页面
var test = 5; //全局函数 任何地方都可使用 ,不管函数内还是函数外 function a() { var a = 3; //局部变量 只能在函数内使用,不能在函数外 console.log(a); //3 console.log(test);//5 } a(); console.log(a); //无法找到变量a 因为他是函数体内的局部变量, console.log(test);//5 var test = 5; function a() { a = 3; //全局变量 因为没有var 所以无论在函数体内或外都能访问的到 console.log(a); //3 console.log(test); //5 } a(); console.log(a); //3 console.log(test); //5 var test = 5; function a() { var test = 3; //局部变量虽然名与全局变量相同,互补影响 console.log(test); //3 /* 因为在最外层的变量,会被作为window的属性, 这时候就算函数内部声明了相同的变量, 还是可通过window对象找到外部定义的变量,这就有了全局变量的功能。 */ console.log(window.test); //5 } a(); console.log(test); //5
变量可以分为全局变量和局部变量(或称私有变量) 全局变量在整个页面中可见,并在页面任何位置被允许访问。 局部变量只能在指定函数内可见,函数外面是不可见的,也不允许访问。 在函数内部使用var关键字声明的变量就是私有变量,该变量的作用域仅限于当前函数体内。 但是如果不使用var关键字定义的变量都是全局变量,不管是在函数内或者函数外,在整个页面脚本中都是可见的。 var str1="hellow1"; //定义一个全局变量 str2="hellow2"; //定义一个全局变量 window.str3="hellow3"; //定义一个全局变量 function func(){ var str4="hellow4";//定义一个局部变量 str5="hellow5"; //定义一个全局变量 } Javascript总是在不知不觉中就出人意料地创建了全局变量。就像: function func(){ var a = b = 0; //. . . } 本想定义两个局部变量,但是代码却是 a 是局部变量,b 是全局变量。这是由于操作符的优先级是从右到左的,就像。 var a = ( b = 0 ); 如果对链式赋值所有变量都进行了声明,就不会创建出不期待的全局变量。 var a, b; a = b = 0; 全局变量的值存储在window中,通过window.a可以拿到变量a的值,而之前直接console.log(a);也可以拿到变量a的值,是因为console.log(a);是从window上拿的,由此可以知道,window.a === a。 var a = 123; console.log(window.a == a);//true -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- 局部变量 局部变量一般定义在函数当中, 变量b只存储在test函数中,在函数test中访问变量b,是完全可以访问到的。 如果是在test函数外面去访问test函数里面的变量b,是访问不到的,而且会报错,因为在全局中并没有定义变量b,直接访问没有被定义的变量b是会报错的。 function test() { var b = 123; //局部变量 console.log(b); //123 } test(); console.log(b);//报错 如果在test函数中访问全局的变量是可以访问的, var a = "aaa"; function test() { var b = 123; //局部变量 console.log(b); //123 console.log(a);//aaa } test(); console.log(b); //报错 1、js变量分为全局变量和局部变量,全局变量不能访问局部变量,局部变量可以访问全局变量。 2、彼此独立的函数,只能访问自己函数里的变量和全局变量,不能访问别人函数里的变量。 3、全局变量与局部变量之间会形成各自的作用域 function test() { var b = 123; //局部变量 console.log(b); //123 } function index() { console.log(b);//访问不到test函数中的变量b 报错 } test(); index(); -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- 变量名的优先级(当有多个名字重复的变量时候) 局部变量高于同名全局变量; 参数变量高于同名全局变量; 局部变量高于同名参数变量; - 函数体内部,局部变量的优先级比同名的全局变量高。 -未使用var关键字定义的变量都是全局变量。 -全局变量都是window对象的属性
标签:span ons 使用 全局变量 一个 rgb 优先级 函数 页面
原文地址:https://www.cnblogs.com/qiqi9/p/14147798.html