パスワードを忘れた? アカウント作成
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()メソッドを利用すれば良いという。

typodupeerror

にわかな奴ほど語りたがる -- あるハッカー

読み込み中...