Мне всегда было интересно, как хранится JavaScript null
ценности внутри. null
отличается от любого значения. Я представляю, что переменные области видимости хранятся в неком массиве структур, каждая структура соответствует переменной. Есть ли в этой структуре какое-то логическое свойство, называемое «ноль»?
Я сам искал бы это в исходном коде V8, но я довольно потерян в коде C ++ 🙁
Я не смог ничего найти в Google. Большинство результатов были связаны с такими вопросами, как «Как определить, является ли переменная неопределенной или нулевой?» или похожие.
JavaScript, будучи слабо типизированным языком сценариев, вероятно, имеет вариантный тип, который поддерживает значения всех типов. Я считаю, что PHP использует переменные того же типа, хотя они известны и на других языках и играют важную роль в автоматизации COM.
В основном это структуры, которые содержат тип и значение. Значение может быть простым значением или указателем на большее или более сложное значение. null
это только один из поддерживаемых типов, в этом случае само значение не играет никакой роли.
Но поскольку JavaScript знает много интерпретаторов, нет никаких правил относительно того, как он реализован, и это то, о чем вам не следует беспокоиться. Обычно вам нужно знать только о базовых методах, подобных этому, для срочных приложений, которые не должны быть написаны на JavaScript в любом случае.
Других решений пока нет …