JavaScript でさあ
変数value が null でも undefined でもない事を確認するのに
if (value) {console.log('null でも undefined でもねーわ'); }
これほんとやめろって。
おかげでvalue に 0 とかが入ってる時に、このコンディションがfalse になるわけだ。
色んな会社さんのコード見てきたけど、このタイプのバグ本当に多い。
昨年は、世界的にも有名な会社さんのフレームワークがこれでバグってた。
でももう既にシステムの一部は本番稼働しててフレームワークはいじれない。
仕方ないのでvalue には一旦文字列の '0' を渡しておいて if (value) {~} の中の重要なロジックを動かして
(めっちゃ幸運な事に、数値 0 のかわりに文字列 '0' でも正しく動くような、型について緩いロジックだったから)
その後で改めてvalue に数値 0 を入れなおすという、きったないハックで誤魔化した事もある。
自分がお客様だったら怒るね。「いやいや、全部理想的なコードにしてちょうだいよ。お金払ってんだよ?」って。
建築の世界では豆腐を建材にしない。
😷ワイもJavaScript始めた時にこのバグやらかしたやで
JavaScriptが悪いんやぞ。 Wasm中心のエコシステムが普及するまで適当にお茶を濁すしか無い。
これどう対処するのが適切なんだろうね。 自分は nullチェックのときだけ厳密等価を使わないで比較している console.assert(null == null, true)console.assert(undefined == null, true)console.assert(0 == null, tru...