- + JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
307 :デフォルトの名無しさん[sage]:2016/05/30(月) 18:22:59.82 ID:ht1IyunN - 凄くタイムリーな質問だと思うんですが
var a = []; a.last = function () { let len = this.length; return 0 < len ? this[len - 1] : null; } みたいな、範囲チェック外はnull返すようなことは不要ですか? これは仕様としてnullが必要だからそうしてるのではなくて、 まぁせっかくチェックしたんだから返すとしたらnullだろうな、 くらいの判断でそうしてます。 それとも a.last = function () {return this[this.length - 1];} で十分ですか? 「javascriptは単にundefinedを返してくれるので範囲チェックしなくていい」 っていうふうにポジティブな解釈していいですか?
|
- + JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
310 :デフォルトの名無しさん[sage]:2016/05/30(月) 18:48:17.09 ID:ht1IyunN - >>308
ありがとうございます。でもそれだと、 配列に整数を入れて使うとき悶絶しちゃうと思うんですがw いや…それは結局nullのときでも一緒ですよね。 undefinedのときでも一緒ではありますね。 それらを代入できるという以上…。 >>309 ありがとうございます。 「a[undefined]のとき」っという表現が不勉強で分からなかったのですが、 いずれにせよ var value = a.last() のあとは単に if (value) するくらいのことしか考えてませんのでundefinedで十分そうです。
|
- + JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
312 :デフォルトの名無しさん[sage]:2016/05/30(月) 18:59:41.70 ID:ht1IyunN - >>311
ありがとうございます。popに合わせておこうと思います。 あとはせっかくなんで使う側はせめて if (a.last()) するよりは if (a.last() === void 0) としてみようかと。
|