パスワードを忘れた? アカウント作成
13588250 story
プログラミング

全米に1000人以上いる「Infinity」さん、名前がjQueryで適切に処理されない恐れ 57

ストーリー by hylom
分かるけど予想外 部門より

「infinity」は「無限大」という意味の英単語だが、女性の名前としても使われているという。全米には1000人以上のInfinityさんがいるそうなのだが、この名前はJavaScriptライブラリjQueryで適切に扱えない可能性があるそうだ(Reddit)。

「Infinity」という文字列が含まれた要素に対し、jQueryの.data()メソッドを使ってその値を取得しようとすると、このメソッドは「Infinity」という文字列を数字の+∞として解釈してそれを返してしまうという。

JavaScriptでは数値を0で割ったときなどに無限大を意味する「Infinity」という値を返すようになっている。.data()メソッドは指定された要素の値を可能な限り適切なJavaScriptオブジェクトとして変換しようとし、変換できなかった場合のみその値を文字列として返すという。「Infinity」という文字列は数字として解釈できるため、その結果数値としての「Infinity」を返してしまうそうだ。対応策としては.attr()メソッドを利用すれば良いという。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by NOBAX (21937) on 2018年05月02日 17時30分 (#3401833)
    呼んだ?
  • by Takahiro_Chou (21972) on 2018年05月02日 20時26分 (#3401969) 日記

    この顛末を描いた映画が、現在公開中の「Avengers: Infinity War」です

    • by Anonymous Coward

      なんかヤシガニになりそう。 [youtube.com]

      #「ただ今作業中」で納品がシャレにならない業界に逝くことになるとは、当時のオレは予想だにしていなかった。

  • 今日からお前の名前は「
  • 特定の処理を経由しないで暗黙の変換されるのはいろいろやばいな、やっぱ

    # Rubyでシンボル変換があったのは覚えてるけど、他の言語はどうだっけ...

    --
    M-FalconSky (暑いか寒い)
    • by Anonymous Coward

      なるべくしようとする、みたいな不安定なのは実務じゃ使えませんわな

      • by Anonymous Coward

        JavaScriptを根底から否定するのはやめてもらえませんかね。

        • by Anonymous Coward

          つ Typescript

          それでもまだ怪しいけど

          • by Anonymous Coward

            隣人「Typescriptで型の指定するのメンドクセ、any型にしとこ」

        • by Anonymous Coward

          なんで? クソ言語をクソ言語と言って何が悪い?

          • by Anonymous Coward

            なんでこんな欠陥言語がweb標準なんかになってしまったのか

            • by Anonymous Coward

              開発の時そのまま使う訳じゃないからそこは大した問題じゃない。

              開発体制や設計の欠陥が常に問題。酷いJavaScript開発は人が酷いからその結果になる。勿論他の言語であっても。
              クサす人はまずまともな現場を見た事が無いのだろう。

              # お前はまともな現場を見た事があるのかって? ねえよ!

      • by Anonymous Coward

        Excel:呼んだ?

        • by Anonymous Coward

          どうして「実務で」とか安易に言っちゃうんだろううねえ。

    • by Anonymous Coward

      "One" だと数字の1になっちゃうのかな

  • by Anonymous Coward on 2018年05月02日 16時30分 (#3401791)

    土和アンリ(アンリミテッド)の妹さんが土和インフィニティだったけ。

    ちなみに父親がアルティメット、母親が極美。

  • by Anonymous Coward on 2018年05月02日 16時39分 (#3401799)

    NaN さんもいるのだろうか

  • by Anonymous Coward on 2018年05月02日 17時13分 (#3401827)

    しばらくjQueryつかってないからもう忘れたけど、dataはプロパティが不可視で、attrは見えるんじゃなかったっけ?
    使うのやめるのが一番な気がする。

    • by Anonymous Coward

      門外漢だから、なんでjQueryがこんなに流行ってるのかいまだに分らん。そんなに効率が違うものかな?

      • by Anonymous Coward

        jQueryはもう下火でしょう

        • by Anonymous Coward

          今は何?

          • by Anonymous Coward

            Vanilla JS

          • by Anonymous Coward

            jQueryはHTMLの一部を修飾するような指向で中規模以上のWebアプリにはいまいち。管理し辛い。
            代わってフレームワーク型のものが1ページ規模からも採用できるものが出てきている。
            機能が被るものを同時に使いたくないからそれならjQuery外そうとなる。
            別にjQueryに代わり何かが大ブームになってる訳ではない。いくつかメジャーなものはある。

  • by Anonymous Coward on 2018年05月02日 17時29分 (#3401831)

    こんなの名前だけに限らないしアメリカだけでもないじゃん。

    • by Anonymous Coward

      のんでアメリカの名前が引っかかったという具体的事例を出すのにあんたに断らないといけないの?

    • by Anonymous Coward

      名前は必須入力項目になることが多く、しかも容易に変更できないから。
      パスワードだとInfinityを禁止しても問題にならないだろうが、名前ではそうはいかない。

      それと問題はアメリカに限定していないのは言うまでもない。
      全米に千人以上いるというだけで、他の国にいないわけではないだろう。

      #日本人が自分の子供にInfinityと名付けることは禁止されてないしな。
      #DQNネームの流れからすると、既に実在しているかもしれない。

      • by Anonymous Coward

        戸籍法施行規則 [e-gov.go.jp]によると、
        > 第六十条 戸籍法第五十条第二項の常用平易な文字は、次に掲げるものとする。
        > 一 常用漢字表(平成二十二年内閣告示第二号)に掲げる漢字(括弧書きが添えられているものについては、括弧の外のものに限る。)
        > 二 別表第二に掲げる漢字
        > 三 片仮名又は平仮名(変体仮名を除く。)

        だから、アルファベットは人名に使えないはずだけど。

  • by Anonymous Coward on 2018年05月02日 18時14分 (#3401866)

    ちょっと前はnullで死んでたね。
    どのライブラリだとこの文字列がダメってのはよくあるし、今は使えててもバージョンアップでそんな不具合が紛れ込むかもしれない。生な文字列を扱う限り可能性が消えない。

    ってことで、文字列は英数字だろうと二バイト文字だろうと、%16進数表記で保持してるw

  • by Anonymous Coward on 2018年05月02日 19時06分 (#3401903)

    数値を0で割ると無限大なのか?

  • 銀髪ボクっ子のインフィニティーさんに“涅槃の眼”を与えられると、過去を改変できるようになるのですね

    # 蒼色輪廻ネタ

  • by Anonymous Coward on 2018年05月03日 10時39分 (#3402231)

    全米で1000人しかいないようなDQNネームがあかんやろ。

    • by Anonymous Coward

      システムが悪いに決まっている。
      たとえ Robert'); DROP TABLE Students;-- ちゃんでもシステムは処理できなければならない。

typodupeerror

計算機科学者とは、壊れていないものを修理する人々のことである

読み込み中...