* 値 [CODE(JS)@en[null]]、型 [CODE(JS)@en[Null]] (JavaScript)

[1] 
>    The [DFN@en[null value]] is a [[primitive value]] that represents the [[null]], [[empty]], or non-existent reference.

;; [CITE[ECMAScript Language Specification (HTML version)]] ([TIME[2009-04-03 04:43:48 +09:00]] 版) <http://bclary.com/2004/11/07/#a-4.3.11>

[2]
> The [[type]] [DFN@en[[CODE(JS)@en[Null]]]] has exactly one [[value]], called [CODE(JS)@en[[[null]]]].

;; [CITE[ECMAScript Language Specification (HTML version)]] ([TIME[2009-04-03 04:43:48 +09:00]] 版) <http://bclary.com/2004/11/07/#a-4.3.12>

** DOM との関係

[6] [[DOM]] や [[WebIDL]] における値 [CODE(IDL)@en[[[null]]]] に相当します。

** 関連

[3]
[CODE(JS)@en[[[null]]]] は [CODE(JS)@en[[[undefined]]]] や [CODE(JS)@en[[[false]]]] や[[空文字列]]と似ていますが、
いずれとも異なる値です。また、[[数値]]の [CODE(JS)[[[0]]]] とも異なります。

[4]
[[Perl]] では [CODE(perl)@en[[[undef]]]] に相当します。ただし [[Perl]] の [CODE(perl)@en[[[undef]]]]
には [[JavaScript]] の [CODE(JS)@en[[[undefined]]]] の役割もあります。

[5]
[[C]] の [CODE(C)@en[[[NULL]]]] と意味的には同じですが、 [[JavaScript]] の [CODE(JS)@en[[[null]]]]
は[[ポインター]]ではありません。

* [CODE[?][? (Web IDL)]] (Web IDL)

[7] [[Web IDL]] では、[[型][型 (Web IDL)]] に [DFN[[CODE[?][? (Web IDL)]]]]
を付けることで、 [CODE[null]] も値として認められることを表します。

[EG[
[8] [CODE[[[DOMString]][[?][? (Web IDL)]]]] は、[[文字列]]または [CODE[null]]
を表します。
]EG]





[9] [CITE@en[Disallow nullable Promise types. (#248)]]
([[tobie]]著, [TIME[2016-12-09 23:20:35 +09:00]])
<https://github.com/heycam/webidl/commit/7366419820e871db6792fd4e7407d490cdaa8020>

[10] [CITE@en[Add null, true, and false]]
([[annevk]]著, [TIME[2017-11-29 02:55:05 +09:00]])
<https://github.com/whatwg/infra/commit/83c18bb1b77baf3d34457c95b458e5adaaa20c9f>

[11] [CITE@en[Add basic JavaScript types · Issue #95 · whatwg/infra]]
([TIME[2017-11-30 23:49:25 +09:00]])
<https://github.com/whatwg/infra/issues/95>

[12] [CITE@en[Add basic JavaScript types · Issue #95 · whatwg/infra]]
([TIME[2017-11-30 23:49:33 +09:00]])
<https://github.com/whatwg/infra/issues/95>

[13] [CITE@en[Add null, true, and false by annevk · Pull Request #171 · whatwg/infra]]
([TIME[2017-11-30 23:49:45 +09:00]])
<https://github.com/whatwg/infra/pull/171>