3

我发现一点:

var example = /1/._ ;

它可以被 chrome 或 Firefox 的解释器接受,并且总是返回undefined

但是我不明白为什么,是._正则表达式中的特殊用法吗?或者还有什么我不知道的?

我在谷歌搜索过,但一无所获。

4

2 回答 2

12

_ 是属性的有效名称

标识符开始 ::

Unicode字母

$

_

\UnicodeEscapeSequence

由于没有具有此名称的属性,因此您只会得到undefined. 这里没有特定于正则表达式的内容:很少有具有此名称的属性,除非您定义它或导入underscore.js(然后它不在正则表达式上,只是在 上window)。

你会得到相同的结果

var example = /1/.abracadabra;

或者

var example = ({}).π;
于 2013-08-24T10:41:11.547 回答
0

让我们分解一下:

var example = /1/            .                                                 _;
              ^ regex object ^ dot (meaning, accessing a method of a property) ^ attempt to access a property named "_".

由于_是不存在的属性,因此您undefined每次都会得到。

就像你会

var example = document.somethingThatDoesntExist;
于 2013-08-24T10:41:49.630 回答