Я знаю, что undefined
ключевое слово не зарезервировано, и можно сделать все, что захочет. Поэтому мы можем переопределить его, например. Но если мы переопределяем undefined
в Javascript, откуда принимает значение void 0
?
Попробуйте этот фрагмент кода:
let undefined = 'test';
console.log(undefined); // prints out 'test'
console.log(void 0); // prints out 'undefined'
На первый взгляд, похоже, что Javascript предоставляет вторую версию undefined
где-то внутри и всегда возвращает ее в результате оператора void
.
void 0
не вытягивает свое значение из вашей undefined
переменной. Он возвращает примитивный тип undefined
: https://developer.mozilla.org/en-US/docs/Glossary/Primitive.
Ваш код определяет переменную с тем же именем - не переопределяя сам примитивный тип. Насколько мне известно, это невозможно.
Подробнее об этом вопросе: возможно ли перезаписать примитивный тип данных javaScript?
console.log(typeof undefined); var undefined = "test"; console.log(typeof undefined); console.log(typeof undefinedVariable);
Оператор void всегда возвращает undefined
для любого переданного operator
. Это undefined
, возвращаемая void
представляет собой элементарное значение undefined
, которое НЕ является записью, перечислимо и настраиваются.
Из вашего кода,
let undefined = 'test';
Если вы проверите тип, вы получите string
.
console.log(typeof(undefined)) //returns string
Это означает, что undefined
инициализированная переменная не является примитивной undefined
которая возвращает void expression
.
undefined указывает на внутренний объект. void возвращает этот внутренний объект.
undefined
мы просто изменим указатель?
let undefined = 'test'
неверный синтаксис