分享一个BUG
这段时间在做改版的时候,遇上一个非常莫名其妙的bug,最终是被我的一个后端同事给发现和指正的。这个bug就是,一个js方法在ie7和ie8下面报 SCRIPT:1010 缺少标示符的错误。这个错误我百度过,很多人都提醒出两种错误的可能:1、后台返回的JSON格式有误,在数组或者对象的末尾项上多出一个逗号,IE7和8是不允许的;2、自身JS的错误,和这个json一个错法。我翻来覆去的找这样两种错误,都没找到,我甚至ctrl+F找整个文件的逗号,看看是不是哪里真的多出这样的逗号,后来排查无果。第二天(其实问题已经存在很多天了),我跟这个后台同事聊起这个BUG,本想也就是发发牢骚,问了一下他在写JSON的时候会不会刻意排查一下这个逗号的问题,同事说一向都不会出错,并好心的帮我看看这段代码,结果他一看我那个方法竟然起了一个名字叫:SWITCH,那么我当场也意识到了,switch是js的保留字,是不能作为标示符的,也就是不能作为对象的名字的。改成switchx以后就消失了这个bug。哎,在当初学js的时候,其实反复独到过这一片知识点,但是真在排查的时候还是不够细心。所以如果你以后遇到这种SCRIPT:10101 缺少标示符的时候,如果查不到任何的逗号问题,那么你不妨找找是不是使用了一些保留字作为对象名了。好了,中秋大礼已经送上了,请各位笑纳!