###経緯
laravelにおいて、formタグでviewのcheckboxからcontrollerに値を渡そうとしたとき、何もチェックを入れていないと、その渡した値がundefinedになってしまった。
checkbox以外で渡すときは値が入っていなくても、undefinedにはならずnullになっていたので不思議に思い、調べてみた。
###結果
答えはここにありました
参照元:https://developer.mozilla.org/ja/docs/Web/HTML/Element/input/checkbox
<form>
<div>
<input type="checkbox" id="subscribeNews" name="subscribe" value="newsletter">
<label for="subscribeNews">Subscribe to newsletter?</label>
</div>
<div>
<button type="submit">Subscribe</button>
</div>
</form>
上のようなcheckbox属性のformタグにおいて、チェックされたら値が送信される。チェックボックスにチェックが入っていない場合、値は全く送信されない。
値は何も送信されないので、リクエストの情報を渡した先でその値はnullではなく、undefinedになる。
nullとundefinedの違いとしては、どちらも値が存在しないが、概念があるかないか。
トイレでトイレットペーパーを切らしている状態がnull。
トイレットペーパーホルダーそのものがない状態がundefined。
という違いがあるとどこかで見た。