1。保留字滥用
如果你的脚本中存在某些保留字或者关键字属性甚至变量名,那么,对不起,您的脚本无法通过解析。
虽然大多数浏览器在这个时候会对你宽大处理,但是JSA不能,比如新浪编辑器里有一个float属性(其实那是错误写法,正确写法应该为 styleFloat)
2。严格的正则语法
JSA使用的是Rhino语法解析器,在正则处理时,哪怕在[]号内,依然需要对全部特殊字符转义。否则可能会出错。
比如,如下表达式:
它在大多数浏览器上,都能通过。
但是Rhino解析器,则无法通过。
我粗略过了一下ECMA规范的语法说明,这一点应该算Rhino实现的bug。
如果你的脚本中存在某些保留字或者关键字属性甚至变量名,那么,对不起,您的脚本无法通过解析。
虽然大多数浏览器在这个时候会对你宽大处理,但是JSA不能,比如新浪编辑器里有一个float属性(其实那是错误写法,正确写法应该为 styleFloat)
2。严格的正则语法
JSA使用的是Rhino语法解析器,在正则处理时,哪怕在[]号内,依然需要对全部特殊字符转义。否则可能会出错。
比如,如下表达式:
- /[/]/.test('/')
它在大多数浏览器上,都能通过。
但是Rhino解析器,则无法通过。
我粗略过了一下ECMA规范的语法说明,这一点应该算Rhino实现的bug。
- ClassAtomNoDash ::
- SourceCharacter but not one of\ ] -
- \ ClassEscape
本文探讨了JavaScript脚本编写过程中常见的两个问题:保留字滥用和正则语法严谨性。保留字滥用可能导致脚本无法正常解析,而正则表达式的不当使用也会引发问题,特别是在使用Rhino语法解析器的情况下。

1939

被折叠的 条评论
为什么被折叠?



