Выражение null
определено в грамматике спецификации языка.
Поскольку null
является зарезервированным словом (например, if
, while
и this
), оно не является название любой декларации. Это просто выражение атоми c (например, this
), которое оценивается как «нулевое значение», которое определяется как единственное значение, реализующее класс Null
.
Реализации языка может реализовать это так, как они хотят. Компилятор Dart2 JS использует оба значения null
и undefined
из JavaScript в качестве нулевых значений Dart. Виртуальная машина имеет специальный объект с нулевым значением, который она создает в памяти при запуске.