Movatterモバイル変換


[0]ホーム

URL:


はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • Twitterでシェア
  • Facebookでシェア

気に入った記事をブックマーク

  • 気に入った記事を保存できます
    保存した記事の一覧は、はてなブックマークで確認・編集ができます
  • 記事を読んだ感想やメモを書き残せます
  • 非公開でブックマークすることもできます
適切な情報に変更

エントリーの編集

loading...

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。

タイトルガイドライン

このページのオーナーなので以下のアクションを実行できます

タイトル、本文などの情報を
再取得することができます
コメントを非表示にできますコメント表示の設定

ブックマークしました

ここにツイート内容が記載されますhttps://b.hatena.ne.jp/URLはspanで囲んでください

Twitterで共有

ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します

536usersがブックマークコメント63

    ガイドラインをご確認の上、良識あるコメントにご協力ください

    0/0
    入力したタグを追加

    現在プライベートモードです設定を変更する

    おすすめタグタグについて

      よく使うタグ

        JavaScript で parseInt / parseFloat を使わない方が良い理由

        536 usersnmi.jp

        ガイドラインをご確認の上、良識あるコメントにご協力ください

        0/0
        入力したタグを追加

        現在プライベートモードです設定を変更する

        おすすめタグタグについて

          よく使うタグ

            はてなブックマーク

            はてなブックマークで
            関心をシェアしよう

            みんなの興味と感想が集まることで
            新しい発見や、深堀りがもっと楽しく

            ユーザー登録

            アカウントをお持ちの方はログインページ

            記事へのコメント63

            • 注目コメント
            • 新着コメント
            teppeis
            「JavaScript において、グローバル空間に生えている関数は基本ろくなものではない(暴論)」ここだけ覚えておけばOK

            その他
            xlc
            グローバルな関数は初期に無考慮に作られ動作に問題があるが互換性のために残されているので、使わない方がよいものもある。ちゃんと考慮されてクラスメソッドとして再実装されたものもある。ということ。

              その他
              tyoro1210
              明示的に cast しようとしてる関数の呼び出し時に、メソッドに渡す前に暗黙的な cast されてるのが渋いな

              その他
              tettekete37564
              2022年だからさ!いやいい加減JSやめようぜ。組み込みのライブラリや関数の類は命名も挙動もおかしいの多い。複雑にネストされたカッコが必用なのはJSのスコープとオブジェクトの扱いがおかしいのを回避する為だからね

                その他
                stefafafan
                parse, truncate, floorの英語の意味を考えるとまあ納得感ある気はする

                その他
                kako-jun
                .NETのint.Parse()も、変換できない文字列ではtryで囲まないとアプリごと落ちて危険なのでint.TryParse()を使うし、名前がparseから始まるものは基本使わないって覚えようかな……

                  その他
                  haccian
                  どんな理由があるのかと思ったら、普通にバグで草。というか、もうjsとかいう欠陥言語使うのやめよう。

                    その他
                    uunfo
                    parseなんちゃらは文字列を解釈する関数なんだから、そこに数値を与えたら予想外の結果が出るのは当たり前のように思う。parseInt(“0.0000005”) が5になるならバグだけど

                      その他
                      homarara
                      うーん? そもそも余計な文字が入ってる文字列や、小数点入りの数値をparseIntで処理しようという時点で、バリデーションのバの字も知らん馬鹿者にしか見えないんだが、問題にする所を間違ってないか?

                        その他
                        door-s-dev
                        jsはブラウザで動く唯一の言語だから仕方なく使ってる人も多いのでは

                          その他
                          Nyoho
                          知らだったー

                          その他
                          UDONCHAN
                          parceIntもStringも使って良いんだけれども、結局無邪気な型変換をしてはいけないという結論なんじゃないだろうか。Math.trunc使ったとしても、バグるときはバグるるし。

                            その他
                            yo_waka
                            "JavaScript において、グローバル空間に生えている関数は基本ろくなものではない(暴論)ので、どうしても使わなければいけない"

                              その他
                              munieru_jp
                              “JavaScript において、グローバル空間に生えている関数は基本ろくなものではない” わかる

                                その他
                                mumei-0
                                “parseFloat(str) を使う場面では Number(str) を検討しよう parseInt(num) を使う場面では Math.trunc(num) を検討しよう”

                                  その他
                                  hamaco
                                  “JavaScript において、グローバル空間に生えている関数は基本ろくなものではない(暴論)”

                                  その他
                                  azzr
                                  "JavaScript において、グローバル空間に生えている関数は基本ろくなものではない(暴論)" fetch()に喧嘩売ってる?

                                    その他
                                    pmint
                                    と言われて鵜呑みにするのはコピペプログラマー。parseInt()は型変換。端数処理に型変換を使うのは不適切。適材適所。

                                    その他
                                    rdrk
                                    「猫を乾かすために電子レンジに入れたら死んだから、電子レンジは使わない方が良い」みたいなクレームは、どこまでつきあうべきなんだろな。

                                      その他
                                      zkzi3254
                                      はぇ〜

                                      その他
                                      HHR
                                      “グローバル空間に生えている関数は基本ろくなものではない(暴論)” 草

                                      その他
                                      toaruR
                                      『parseInt(0.0000005) === 5』……ゲゲゲ\(^o^)/

                                        その他
                                        uunfo
                                        uunfoparseなんちゃらは文字列を解釈する関数なんだから、そこに数値を与えたら予想外の結果が出るのは当たり前のように思う。parseInt(“0.0000005”) が5になるならバグだけど

                                          2022/02/04リンク

                                          その他
                                          wataken44
                                          そのうち思い出す用

                                            その他
                                            z1h4784
                                            知ってるんだけどつい癖でparseIntを使っちゃうんだよな。たまにしかJavaScriptを書かないからMath.truncは忘れちゃう

                                              その他
                                              sa-yama321
                                              if (!isString(val)) { throw new Error('xxx') }

                                                その他
                                                otchy210
                                                文字列から数値への変換は正当な使い方でありと思っていたが、Number(str) の方がモダンでより安全と。

                                                  その他
                                                  send
                                                  "グローバル空間に生えている関数は基本ろくなものではない" せやなw

                                                    その他
                                                    katsyoshi
                                                    "JavaScript において、グローバル空間に生えている関数は基本ろくなものではない(暴論)" ここすき

                                                      その他
                                                      mickn
                                                      “JavaScript において、グローバル空間に生えている関数は基本ろくなものではない”

                                                        その他
                                                        kazuhooku
                                                        「グローバル空間に生えている関数は基本ろくなものではない(暴論)」wwww良い記事

                                                          その他
                                                          ene0kcal
                                                          悪いけど知ってた(クソなことね)。こういった詳細と代替案を整理してるのは素晴らしい。

                                                          その他
                                                          ducktoon
                                                          こんな糞仕様の糞言語が広まってしまって悲しい

                                                            その他
                                                            h3poteto
                                                            わろた "JavaScript において、グローバル空間に生えている関数は基本ろくなものではない(暴論)"

                                                              その他
                                                              strawberryhunter
                                                              昔、JavaとPHPを比べてPHPがいかにヤバい言語かを説明するブログなどがあったが、JavaScriptには比べるべき言語が無いので今まで表立って批判されてこなかったのではないか。

                                                              その他
                                                              coolworld
                                                              そもそも、なんで文字列じゃないものを渡そうと思ったんだろう。

                                                                その他
                                                                koogawa
                                                                “parseInt というのは、文字列を解析して整数値(int)を返すグローバル関数であり、引数をまず文字列に変換する仕様となっております” なるほど

                                                                  その他
                                                                  morita_non
                                                                  そもそも文字列以外渡すな。型が理解出来ない人間は型なし言語を使うべきではない。あれ?逆だったっけ?

                                                                    その他
                                                                    masarusanjp
                                                                    なんでparseIntに文字列以外渡せるんだって思ったが、"parseInt は引数に数値ではなくて文字列を取ります。正確には仕様にある通り、まず引数を ToString によって文字列に変換します。" この仕様が罠っぽい

                                                                      その他
                                                                      lli
                                                                      勘弁してくれ〜

                                                                        その他

                                                                        注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

                                                                        リンクを埋め込む

                                                                        以下のコードをコピーしてサイトに埋め込むことができます

                                                                        プレビュー
                                                                        アプリのスクリーンショット
                                                                        いまの話題をアプリでチェック!
                                                                        • バナー広告なし
                                                                        • ミュート機能あり
                                                                        • ダークモード搭載
                                                                        アプリをダウンロード

                                                                        関連記事

                                                                          usersに達しました!

                                                                          さんが1番目にブックマークした記事「JavaScript で par...」が注目されています。

                                                                          気持ちをシェアしよう

                                                                          ツイートする

                                                                          JavaScript で parseInt / parseFloat を使わない方が良い理由

                                                                          となるのが原因です。parseInt というのは、文字列を解析して整数値(int)を返すグローバル関数であり...となるのが原因です。parseInt というのは、文字列を解析して整数値(int)を返すグローバル関数であり、引数をまず文字列に変換する仕様となっております。その段階で 0.0000005 が "5e-7" という文字列に変換されてしまい、その文字列の先頭の 5 だけが数字として解析されてしまったため、結果として parseInt(0.0000005) === 5 となりました。 なぜ String(0.000005) === "0.000005" に、String(0.0000005) === "5e-7" になるのかについては、この記事の最後で余談として説明します。 整数化には Math.trunc を使おう このように、parseInt は文字列を引数にすることを前提にしているため、速度の面でも可読性の面でも「小数値を整数値に変換したい」という場合に使うのは望ましくありません。最も望

                                                                          ブックマークしたユーザー

                                                                          • funghi_seven2025/06/03funghi_seven
                                                                          • buzztaiki2024/06/11buzztaiki
                                                                          • murasuke2024/06/10murasuke
                                                                          • moslee2023/06/11moslee
                                                                          • akiyoko2022/12/31akiyoko
                                                                          • techtech05212022/12/18techtech0521
                                                                          • yuyans2022/10/13yuyans
                                                                          • masarukondo2022/09/30masarukondo
                                                                          • otanuft2022/05/18otanuft
                                                                          • chibahiro2022/04/04chibahiro
                                                                          • deathmaiden2022/03/29deathmaiden
                                                                          • yuuki55552022/02/25yuuki5555
                                                                          • kikiki-kiki2022/02/21kikiki-kiki
                                                                          • yuu-yuiken2022/02/13yuu-yuiken
                                                                          • TakayukiN6272022/02/12TakayukiN627
                                                                          • yajamon2022/02/12yajamon
                                                                          • hush_in2022/02/11hush_in
                                                                          • l-liroki2022/02/11l-liroki
                                                                          すべてのユーザーの
                                                                          詳細を表示します

                                                                          ブックマークしたすべてのユーザー

                                                                          同じサイトの新着

                                                                          同じサイトの新着をもっと読む

                                                                          いま人気の記事

                                                                          いま人気の記事をもっと読む

                                                                          いま人気の記事 - テクノロジー

                                                                          いま人気の記事 - テクノロジーをもっと読む

                                                                          新着記事 - テクノロジー

                                                                          新着記事 - テクノロジーをもっと読む

                                                                          同時期にブックマークされた記事

                                                                          いま人気の記事 - 企業メディア

                                                                          企業メディアをもっと読む

                                                                          はてなブックマーク

                                                                          公式Twitter

                                                                          はてなのサービス

                                                                          • App Storeからダウンロード
                                                                          • Google Playで手に入れよう
                                                                          Copyright © 2005-2025Hatena. All Rights Reserved.
                                                                          設定を変更しましたx

                                                                          [8]ページ先頭

                                                                          ©2009-2025 Movatter.jp