console.log("#1", "a12312a".match(/^\d+/)?.[0].length);
console.log("#2", ("a12312a".match(/^\d+/)?.[0]).length);
我正在编写一些代码,偶然发现了一些我不明白的东西。在 Chrome 89.0.4389.128 (Official Build) (64-bit) 中,上面的代码给出了这个:
#1 undefined
Uncaught TypeError: Cannot read property 'length' of undefined
这两行在我看来都是一样的:"a12312a".match(/^\d+/)?.[0]
is an undefined
,并且他们正在尝试读取应该抛出 alength
的属性。但是第一行没有,而第二行没有。undefined
TypeError
…为什么?我很困惑。我错过了一些非常基本的东西吗?