パスワードを忘れた? アカウント作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018年5月2日のデベロッパー記事一覧(全1件)
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

吾輩はリファレンスである。名前はまだ無い -- perlの中の人

読み込み中...