最近调试JS代码的时候,总是报错Script error.filename:lineno:0,而且IOS才报错,安卓并不报错,连出错行都没有,无法定位具体的代码,很难找到错误原因,经过多翻调试,最后对出现这个错误提示进行一个汇总。
1、未定义的变量直接用来运算,如:var Lon = '<img src="' + thumb + '">';,此时,如果thumb之前并未定义,那么就会报错,这种情况常见于一些本以为是全局变量,最后并未定义成全局变量的情况;又或者全局变量是在异步操作中定义的,如果是这种情况,那就很有可能会出现偶尔性的报错 Script error.filename:lineno:0,偶尔又没事。
2、if(typeof(thumb)==='undefined'),不建议用这种方法判断变量是否已经定义,typeof是表达式,并不是函数,建议使用if(typeof thumb=='undefined'),而且,typeof thumb得到的结果是字符串类型的数据,如:boolen,array,object等,实质上是"array","object"。
总结出来一点就是,全局变量使用的时候要注意有效性。
技术支持: