
正文
关于变量和函数名相同时js的信息
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
一个js函数中可以申明两个相同名称的变量吗
1、两个相同变量 一个赋值 一个不赋值。输出一个结果!可以看下代码 var names;var names=1;alert(names);//这里只会提示1 因为第二次重复声明在同意作用域下会覆盖第一次的。
2、一般不会起冲突 因为你后面的语句,里面用了var,相当于重新定义了变量。但是如果前一个for循环中,执行效率很低,循环体有可能还未执行完毕,就进入下一个for循环,有可能会有冲突。
3、可以一样,没有什么影响,两者是相互独立。在函数内部声明的是局部变量,其作用范围往往限制在这个函数内。
4、一个页面如果引用多个JS,或者像ASP.NET MVC,一个视图包含多个子视图,每个子视图有自己的JS,那么变量、函数的重名冲突机会将会大增。
相关问答
Q1: 一个页面中定义两个同名的JS函数,调用会是什么结果
1、一般不会起冲突 因为你后面的语句,里面用了var,相当于重新定义了变量。 但是如果前一个for循环中,执行效率很低,循环体有可能还未执行完毕, 就进入下一个for循环,有可能会有冲突。
2、函数没有重名,就是初始变量有重名的情况了,或者你操作是操作了同一个控件(div),因为都初始化设置了,谁最后设置,就默认是谁的。
3、js中有两个相同的方法参数个数不相同加载时加载顺序:js加载都是从前往后的,但是一样的函数名,前面的函数会被后面的覆盖掉,所以,调用函数a的时候,永远都是去执行第二个函数。
4、②、方法名冲突 函数中有很多方法,不同的js之间可能函数名一样,这就使得程序执行时不知道改调用那个方法或者哪个方法执行后的结果,最终导致程序加载失败。③、函数名冲突 一般是命名导致JS冲突。
Q2: 当局部变量和全局变量具有相同的名称,会发生什么?
1、如果全局变量与局部变量同名,在局部变量的作用域内,局部变量会隐藏全局变量,即在局部变量的作用域内使用的是局部变量。
2、首先,全局变量如果和局部变量定义成了同样的名称,局部变量会屏蔽掉全局变量的,这时对变量的读和写都是用的局部变量,所以fun1(5,6)输出的就是传入的5和6。
3、【答案】: 能,局部会屏蔽全局。要用全局变量,需要使用:局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。
4、void f() { int d = 5;double b = d; //全局变量,因此全局变量的类型更匹配 } 这种情况两个d是可以区别的,因此b最后是使用全局变量d进行赋值。
5、如果全局变量和局部变量重名,局部变量将覆盖全局变量。
Q3: 同一个页面中的两个独立的js之间变量名相同可以么?
一般不会起冲突 因为你后面的语句,里面用了var,相当于重新定义了变量。 但是如果前一个for循环中,执行效率很低,循环体有可能还未执行完毕, 就进入下一个for循环,有可能会有冲突。
不可以的。 ... function myFunction(){ var a=123;// var a=abc;document.write(a);} enjoy the sunshine 运行一下这段代码。如果是没有注释:var a=abc;没有出现结果。
我觉得应该也是不会报错的,全局变量会被覆盖,比如 var abc = 0 ; var abc = function(){...}; abc会指向函数的引用。
js文件之间只要引用了,全局的变量和定义的方法都是公用的,因此直接用就可以了。只是引用脚本的时候要注意,先后顺序,先用到的全局变量和方法要先引用。
函数没有重名,就是初始变量有重名的情况了,或者你操作是操作了同一个控件(div),因为都初始化设置了,谁最后设置,就默认是谁的。
Q4: JS中函数名如果与全局变量名同名的话,会出错吗?
1、一个页面如果引用多个JS,或者像ASP.NET MVC,一个视图包含多个子视图,每个子视图有自己的JS,那么变量、函数的重名冲突机会将会大增。
2、这种情况两个d是可以区别的,因此b最后是使用全局变量d进行赋值。其次,如果局部变量和全局变量的类型与名称完全一致,在局部变量定义的有效域中,局部变量将覆盖全局变量。直到退出局部变量定义域,全局变量的定义才又重新可见。
3、能,局部会屏蔽全局。要用全局变 量,需要使用: : ; 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名 的局部变量,而不会用到全 局变量。
4、①、变量名冲突 变量有全局变量和局部变量当全局变量变量和局部变量名称一致时,就会js冲突,由于变量传递数值或地址不同就会产生JavaScript错误,甚至死循环。
Q5: ...函数内部定义了同名同类型的局部变量,函数内引用这个变量时是...
变量的引用过程,类似于栈。就是说编译器从变量引用处以最近逻辑距离开始搜索,找到后则开始使用停止则停止搜索;如果查找失败则编译出错。
举个例子来说,就是优先引用函数内部的(逻辑距离最近),其次引用同一个源文件中全局的,如果函数内部、同一个源文件中没有,再引用包含文件中的。返回值也是对变量的引用,当然是局部变量。
能,局部会屏蔽全局。要用全局变量,需要使用:局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。
void f() { int d = 5;double b = d; //全局变量,因此全局变量的类型更匹配 } 这种情况两个d是可以区别的,因此b最后是使用全局变量d进行赋值。
在C语言等面向过程语言中,局部变量可以和全局变量重名,但是局部变量会屏蔽全局变量。在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。在Java等面向对象语言中,也可能出现多个局部变量重名的情况。
关于变量和函数名相同时js和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







