var str1=new RegExp("e"); document.write(str1.exec("hello")); 以上代码输出结果为( )

发布时间 2023-11-09 09:43:43作者: 龙陌

var str1=new RegExp("e");
document.write(str1.exec("hello"));
以上代码输出结果为 e

JavaScript高级程序设计上面的原话:
RegExp 对象的主要方法是 exec(),该方法是专门为捕获组而设计的。
exec()接受一个参数,即要应用模式的字符串,然后返回包含第一个匹配项信息的数组;或者在没有匹配项的情况下返回 null。

返回的是个数组,但是document.write打印时只打印了第一个元素。打印的是隐性toString()后的数据

如果匹配成功,exec() 方法返回一个数组,并更新正则表达式对象的属性。返回的数组将完全匹配成功的文本作为第一项,将正则括号里匹配成功的作为数组填充到后面。

如果匹配失败,exec() 方法返回 null。

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec

var str1=new RegExp("e");
 str1.exec("hello")
 ["e", index: 1, input: "hello", groups: undefined]
 
 var str1=new RegExp("l");
 str1.exec("hello")
 ["l", index: 2, input: "hello", groups: undefined]

exec() 方法在控制台中输出的应该是一个伪数组,且数组的第一位是 ‘e’ 。而题目中使用的是 document.write() 方法,经过测试发现,页面上显示的是 ‘e’ 而不是伪数组