我发现一点:
var example = /1/._ ;
它可以被 chrome 或 Firefox 的解释器接受,并且总是返回undefined
。
但是我不明白为什么,是._
正则表达式中的特殊用法吗?或者还有什么我不知道的?
我在谷歌搜索过,但一无所获。
我发现一点:
var example = /1/._ ;
它可以被 chrome 或 Firefox 的解释器接受,并且总是返回undefined
。
但是我不明白为什么,是._
正则表达式中的特殊用法吗?或者还有什么我不知道的?
我在谷歌搜索过,但一无所获。
_
是属性的有效名称:
标识符开始 ::
Unicode字母
$
_
\UnicodeEscapeSequence
由于没有具有此名称的属性,因此您只会得到undefined
. 这里没有特定于正则表达式的内容:很少有具有此名称的属性,除非您定义它或导入underscore.js(然后它不在正则表达式上,只是在 上window
)。
你会得到相同的结果
var example = /1/.abracadabra;
或者
var example = ({}).π;
让我们分解一下:
var example = /1/ . _;
^ regex object ^ dot (meaning, accessing a method of a property) ^ attempt to access a property named "_".
由于_
是不存在的属性,因此您undefined
每次都会得到。
就像你会
var example = document.somethingThatDoesntExist;