刚接触JS,也没看ES6的标准,在使用的时候带着一些写python的习惯。遇到了一个函数中的变量被覆盖的问题,最后靠自己猜解决了。
问题为:
在addCases中调用getElementsByTagName函数,在for循环语句中的ip变量被getInputByName中的同名变量覆盖了。,解决办法,在for循环语句中申明变量ip时候加上"var"。
原因是如果默认变量是以“var”的方式声明的,var声明的变量属于全局变量,所以在循环体中被调用的函数中声明的ip变量覆盖了
循环变量。
Solution如下:
浏览器开发环境:
原因是如果默认变量是以“var”的方式声明的,var声明的变量属于全局变量,所以在循环体中被调用的函数中声明的ip变量覆盖了
循环变量。
看了阮一峰的《ES6标准入门》中在介绍块级作用域的时候提到了,循环变量泄露为全局变量的问题。所以安全起见,循环变量可以全部设置为以let 声明。