Почему я могу отображать Boolean и Number, но не RegEx?

Почему мы можем передать Number, Booleanили Stringв массив пусть массив = [ "10" , "20" , "30" , "40" , "0" ]; консоль . log ( «Boolean» , массив . map ( Boolean )); консоль . log ( «Number» , массив . map ( Number )); консоль . log ( «RegExp» , массив . map ( x => новый RegExp ( x ))); // не может сделать array.map (RegExp), но не массив . map ( RegExp ); ? Может быть что-то нооб, но просто пытаюсь понять мою основную разницу между этими конструкторами?

map

javascript,constructor,

2

Ответов: 1


3 принят

Когда вы звоните:

currentValue, index, array

Вы получаете:

Uncaught SyntaxError: недопустимые флаги, предоставленные в конструктор RegExp '0'

Функция, которую вы передаете, mapвызывается с несколькими аргументами ( RegExp).

RegExp(в отличие от Booleanи Number) использует второй аргумент (он описывает флаги, которые должны применяться к регулярному выражению, например, "g"для глобальных). Число (которое indexесть) не является допустимым именем флага.

JavaScript, конструктор,