Creative Saplings

isNaNとNumber.isNaNの違い

9月 16, 2020
No Comments

ほとんどの人は、 `isNaN`とは何かとその使用方法を知っています。それは「それは数字のように見えるのか、本当に数字なのか」という意味です。指定されたものが「数値ではない」場合はtrueを返します。私はあなたがポイントを得たと思います。さて、これが取引です。 isNaNとNumber.isNaNの違いは何ですか?

説明を始める前に、友人のRafaelに書くように勧めてくれたことに感謝します。

isNaNから始めましょう。これは、どこからでも呼び出すことができるグローバル関数です。実際の動作を見てみましょう:

const badDivision = 17 / "something"; // NaN
isNaN(badDivision); // true

これは単純ですが、方向が間違っています。次に例を示します。

isNaNの実装によると、文字列値を数値として扱い、これに基づいて結果を返します。`isNaN( ‘blabla’) `を確認してください。

では、何ですか?

では、これらの誤解を解決するためにNumber.isNaN静的メソッドにはEcmaScript2015#Number.isNaNが付属しています
何をしているのですか?

私の場合、数値タイプとして2つのパラメーターを受け入れ、ターゲットのスケーリングでアニメーションを実行するメソッドがあります。オブジェクト。どういうわけか、少しリファクタリングを行った後、私は奇妙な振る舞いをしました。はい、私はユニットテストを書くべきでした、恥ずかしいです。とにかく、場合によっては、メソッドはパラメータとして未定義を受け取ります。だから私はそれらをチェックする必要があります。

私はこれを書きました:

私の不注意は私を間違った論理に導きます。 Number.isNaN(undefined)は私にfalseを返すからです。 (古いisNaN(undefined)はtrueを返します)それで私は次のように変更しました:

function animate(targetScaleX, targetScaleY) {
if (!Number.isNaN(targetScaleX * targetScaleY)) {
return;
} // Do Animation
}

それで動作しているようです。しかし、私は起こりうるすべての失敗に気を配りたかったのです。たぶん私は未定義ではなくnullを受け取るかもしれません。 nullを受け取った場合、ロジックは失敗します。なぜですか?

null * null; // 0
null * 8 // 0

あなたはそのことを理解していると思います。そこで、次のようにコードを更新しました。

私の目標は、2つの値が未定義またはnullであることを確認することでした。そして、私の旅はその記事を書き、私の知識を更新することになります。実装は私が知っている派手なものではありませんが、旅は教育的でした。

Articles
Previous Post

うつ病はあなたに声を聞かせることができます

Next Post

空腹の登山家

コメントを残す コメントをキャンセル

最近の投稿

  • 世界で最高の写真学校、2020年
  • ソブリン市民が反政府哲学を道路に持ち込む
  • スタッコ修理費用ガイド
  • マックレーカー
  • Precision Oncology (日本語)

アーカイブ

  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.