两个相似函数一个正常运行一个失效的问题排查
问题根源:大小写敏感的变量名拼写错误
嘿,一眼就瞅出问题啦——这是JavaScript大小写敏感性导致的典型低级错误!
你在BADself函数里声明的数组变量是aryVarABi(注意末尾是大写的ABi),但在执行赋值语句的时候,写成了aryVarAbi(末尾变成了小写的Abi)。JavaScript是严格区分大小写的语言,浏览器会把aryVarAbi当成一个全新的未定义变量,自然就抛出“未定义”的错误,导致函数停滞。
对比GOODself函数就能看出来差异:里面的赋值语句是正确的aryVarABi[0] = 5;,所以能正常运行;而BADself里的拼写错误直接触发了报错。
修正后的BADself函数代码
function BADself(GABin, nCols, nRows) { var aCol = 0; var aryVarABi = [1,1,1,1]; for (aCol=0; aCol < nCols - 1; aCol++) { alert("BAD1 " + aryVarABi[aCol]); // 修正变量名大小写,和声明的保持一致 aryVarABi[0] = 5; alert("BAD2 " + aryVarABi[aCol]); } // for aCol return (aryVarABi[0]); } // BADself
只要把写错的变量名改回和声明一致的aryVarABi,问题就彻底解决啦!
内容的提问来源于stack exchange,提问作者Colin Ferguson
相关产品推荐
相关产品推荐

