При просмотре миниатюрного кода Javascript я часто вижу следующее утверждение:
if (!''.replace(/^/, String)) {
// ...
}
Что это делает? Кажется, что любой интерпретатор JS, совместимый с ECMA, заменит начало строки на String('')
, что по-прежнему приводит к пустой строке, отрицание которой true
.
В каких обстоятельствах поведение будет отличаться?