Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録
< anond:20240105164841 |anond:20240105164622 >

2024-01-05

JavaScript でさあ

変数value が null でも undefined でもない事を確認するのに

   if (value) {console.log('null でも undefined でもねーわ');   }

これほんとやめろって。

おかげでvalue に 0 とかが入ってる時に、このコンディションがfalse になるわけだ。

色んな会社さんのコード見てきたけど、このタイプバグ本当に多い。

今まさに、まーたこバグを見つけて増田を書いてるわけで。

昨年は、世界的にも有名な会社さんのフレームワークがこれでバグってた。

ももう既にシステムの一部は本番稼働しててフレームワークはいじれない。

仕方ないのでvalue には一旦文字列の '0' を渡しておいて if (value) {~} の中の重要ロジックを動かして

(めっちゃ幸運な事に、数値 0 のかわりに文字列 '0' でも正しく動くような、型について緩いロジックだったから)

その後で改めてvalue に数値 0 を入れなおすという、きったないハックで誤魔化した事もある。

自分お客様だったら怒るね。「いやいや、全部理想的コードにしてちょうだいよ。お金払ってんだよ?」って。

もし建築世界でこんな誤魔化しが起こってたら、人の命が消えちゃうよ。。。

Permalink |記事への反応(4) | 16:52

このエントリーをはてなブックマークに追加ツイートシェア

記事への反応 -
  • 建築の世界では豆腐を建材にしない。

  • 😷ワイもJavaScript始めた時にこのバグやらかしたやで

  • JavaScriptが悪いんやぞ。 Wasm中心のエコシステムが普及するまで適当にお茶を濁すしか無い。

  • これどう対処するのが適切なんだろうね。 自分は nullチェックのときだけ厳密等価を使わないで比較している console.assert(null == null, true)console.assert(undefined == null, true)console.assert(0 == null, tru...

記事への反応(ブックマークコメント)

全てのコメントを見る

人気エントリ

注目エントリ

ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp