JavaScript: возможно ли присвоить значение «неопределено»? (вопрос от You-Dont-know JS)
как можно присвоить значение неопределенному? Как я понимаю, undefined — это примитивный тип в js, тогда что означает undefined = true ;?
Вы правы, undefined
— это примитивный тип, но это не литерал .
Когда вы получаете доступ к undefined
, вы получаете доступ к свойству в глобальном объекте.
До ES5 это свойство было доступно для записи, и его можно было переопределить.
Но начиная с ES5, он был определен как недоступный для записи , и теперь его нельзя изменить.
Не являясь литералом типа null
, true
или false
, можно использовать undefined
в качестве имени привязки для переменной, параметра функции или имени функции, но не в глобальной области видимости. Это будет конфликтовать со встроенным undefined
.
(function () { 'use strict'; const undefined = 'some value'; console.log(undefined); // "some value" })();