
正文
js形式参数与局部变量同名的简单介绍
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
1、局部变量能否和全局变量重名?【精品推荐
可以重名。在程序中如果出现了相同的两个变量,一个是局部变量,一个是全局变量,编译可以通过,但是打印出的值是局部变量的值,如果想打印全局变量的值的话,在全局变量之前加上“:”就可以了。
可以同名,比如:全局变量有个变量i,你的子程序中也用变量i当成循环变量,则在子程序中使用的i不是全局变量,是你定义的局部变量,全局变量i不受影响也不会被使用。
因为名称是可以相同的,只是作用范围和局部内的调用不一样而已。
相关问答
Q1: 同一个页面中的两个独立的js之间变量名相同可以么?
不可以一样,如果一样则会被覆盖。比如:var a = abcd;function a(){ alert(1);}alert(a);//这里的a是变量abcd,因为解析时会先读入变量申明以及方法定义,然后再是对变量的初始化,所以变量值覆盖了方法名。
函数没有重名,就是初始变量有重名的情况了,或者你操作是操作了同一个控件(div),因为都初始化设置了,谁最后设置,就默认是谁的。
我觉得应该也是不会报错的,全局变量会被覆盖,比如 var abc = 0 ; var abc = function(){...}; abc会指向函数的引用。
从一个JS中调用另一个JS文件中的变量常规来说不不可能的,不过可以在页面上设置一个全局变量,这样没个JS都可以获取到这个全局变量。
最好的方法是使用闭包,将变量都封装起来。另外你这里发生的问题,我认为很有可能是直接使用了VAR TEMPA=TEMP,VAR TEMPB=TEMP,这样的做法,在JS中obj的赋值其实是将指针指向已有变量,这样会在操作中相互影响。
Q2: “局部变量”能否和“全局变量”重名?
1、可以重名。在程序中如果出现了相同的两个变量,一个是局部变量,一个是全局变量,编译可以通过,但是打印出的值是局部变量的值,如果想打印全局变量的值的话,在全局变量之前加上“:”就可以了。
2、可以同名,比如:全局变量有个变量i,你的子程序中也用变量i当成循环变量,则在子程序中使用的i不是全局变量,是你定义的局部变量,全局变量i不受影响也不会被使用。
3、一般不会出错,如果在局部中定义了定义了相同名称的变量,那该变量的值只在该模块中有效,而与相同名称的全局变量没有关系。
4、其次,如果局部变量和全局变量的类型与名称完全一致,在局部变量定义的有效域中,局部变量将覆盖全局变量。直到退出局部变量定义域,全局变量的定义才又重新可见。
5、可以,这个几十涉及到变量的作用域了。除了全局变量,局部变量的作用域在函数体内 另外哪怕同一个函数体内 定义如下变量也是ok的:int i =1;for(int i=0;i5;i++){ 。。
Q3: ...两个循环里面分别定义了2个同名的局部变量,会起冲突吗?
1、一般不会起冲突 因为你后面的语句,里面用了var,相当于重新定义了变量。但是如果前一个for循环中,执行效率很低,循环体有可能还未执行完毕,就进入下一个for循环,有可能会有冲突。
2、如果两个同名的静态变量在两个不同的函数内部被定义,内存分配时地址指针并不同,所有不会冲突。函数内部定义的静态变量在应用时需要注意一个问题:如果该功能函数被两个独立的对象同时调用,该静态变量是冲突的,此时该静态变量必须被定义为独立对象的成员。
3、楼主。。其实不用循环变量除外。因为都是一样的 平常不允许声明 两个一样的变量,是因为如果有两个一样的变量出现的时候,比如你输出他的信息,电脑不知道要调用哪个变量。在if,for,while等结构中声明的变量,是局部变量。出了这个循环体就会销毁了。
4、可以、、静态局部变量在函数调用结束后仍然存在,及它的内存空间不会被释放,但其他函数是不能引用它的。因为它是局部变量,只能被本函数引用,而不能被其他函数引用。
5、函数不同,局部变量完全无关,自然可以使用相同的名字。2 在同一函数中,但作用域不同。局部变量的作用域是定义位置,到所在大括号结束。所以只要两个局部变量属于不同的大括号中,就可以同名。
js形式参数与局部变量同名的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、js形式参数与局部变量同名的信息别忘了在本站进行查找喔。








