我在Google的缩小JavaScript源代码中偶然发现了以下几行。
var X=/\uffff/.test("\uffff")?/[\\\"\x00-\x1f\x7f-\uffff]/g:/[\\\"\x00-\x1f\x7f-\xff]/g;
我对正则表达式,字符集,UTF,Unicode等非常有信心。但是这个该死的单行让我很困惑。而且仍然如此。
我发现X
is actually goog.json.Serializer.charsToReplace_
。好吧,找到the non-minified version回答了我的其他一些问题。
尽管如此,我仍然无法看到使用这个三元运算符构造的原因 - ,因为此静态表达式无法评估为false
。因此,为什么不只是赋值?或者我错过了什么?
/\uffff/.test("\uffff")
不如何返回true
?
/\uffff/.test("\uffff")
如何false
?