全米に1000人以上いる「Infinity」さん、名前がjQueryで適切に処理されない恐れ 57
ストーリー by hylom
分かるけど予想外 部門より
分かるけど予想外 部門より
「infinity」は「無限大」という意味の英単語だが、女性の名前としても使われているという。全米には1000人以上のInfinityさんがいるそうなのだが、この名前はJavaScriptライブラリjQueryで適切に扱えない可能性があるそうだ(Reddit)。
「Infinity」という文字列が含まれた要素に対し、jQueryの.data()メソッドを使ってその値を取得しようとすると、このメソッドは「Infinity」という文字列を数字の+∞として解釈してそれを返してしまうという。
JavaScriptでは数値を0で割ったときなどに無限大を意味する「Infinity」という値を返すようになっている。.data()メソッドは指定された要素の値を可能な限り適切なJavaScriptオブジェクトとして変換しようとし、変換できなかった場合のみその値を文字列として返すという。「Infinity」という文字列は数字として解釈できるため、その結果数値としての「Infinity」を返してしまうそうだ。対応策としては.attr()メソッドを利用すれば良いという。
日産 (スコア:2)
Re:日産 (スコア:1)
嘘八百 (スコア:2)
この顛末を描いた映画が、現在公開中の「Avengers: Infinity War」です
Re: (スコア:0)
なんかヤシガニになりそう。 [youtube.com]
#「ただ今作業中」で納品がシャレにならない業界に逝くことになるとは、当時のオレは予想だにしていなかった。
Re: (スコア:0)
ネタバレいくない
Re: (スコア:0)
Takahiro_Chouさん、頼もしい味方が現れましたよ
Infinityだなんて贅沢な名だね (スコア:1)
Re:Infinityだなんて贅沢な名だね (スコア:5, おもしろおかしい)
NaN」だよ
Re: (スコア:0)
それはナンですか?
Re: (スコア:0)
荒井注「NaNだ馬鹿野郎」
Re: (スコア:0)
「未知」さんなら同僚にいました
Infinityさんは米国流キラキラネームかも
文字データのシンボル化 (スコア:1)
特定の処理を経由しないで暗黙の変換されるのはいろいろやばいな、やっぱ
# Rubyでシンボル変換があったのは覚えてるけど、他の言語はどうだっけ...
M-FalconSky (暑いか寒い)
Re: (スコア:0)
なるべくしようとする、みたいな不安定なのは実務じゃ使えませんわな
Re: (スコア:0)
JavaScriptを根底から否定するのはやめてもらえませんかね。
Re: (スコア:0)
つ Typescript
それでもまだ怪しいけど
Re: (スコア:0)
隣人「Typescriptで型の指定するのメンドクセ、any型にしとこ」
Re: (スコア:0)
なんで? クソ言語をクソ言語と言って何が悪い?
Re: (スコア:0)
なんでこんな欠陥言語がweb標準なんかになってしまったのか
Re: (スコア:0)
開発の時そのまま使う訳じゃないからそこは大した問題じゃない。
開発体制や設計の欠陥が常に問題。酷いJavaScript開発は人が酷いからその結果になる。勿論他の言語であっても。
クサす人はまずまともな現場を見た事が無いのだろう。
# お前はまともな現場を見た事があるのかって? ねえよ!
Re: (スコア:0)
Excel:呼んだ?
Re: (スコア:0)
どうして「実務で」とか安易に言っちゃうんだろううねえ。
Re: (スコア:0)
"One" だと数字の1になっちゃうのかな
Re:文字データのシンボル化 (スコア:1)
全国の尾根さん(小根さんも)がやばい
スピーシーズドメイン (スコア:0)
土和アンリ(アンリミテッド)の妹さんが土和インフィニティだったけ。
ちなみに父親がアルティメット、母親が極美。
Re:スピーシーズドメイン (スコア:1)
アンリミテッドさん、は実在するだろうか?
アンリは男性名で普通にあるだろうが...
# あの名前いいよねw
M-FalconSky (暑いか寒い)
Re: (スコア:0)
アンリはヘンリーかな
Infinity さんがいるなら (スコア:0)
NaN さんもいるのだろうか
Re: (スコア:0)
桂 南なん 「呼んだ?」
Re: (スコア:0)
nullさんとかundefinedさんとかもどっかで話題になってたような?
あと、割と多いのがsudoさん(須藤さん)。
Re:Infinity さんがいるなら (スコア:2)
Null [gizmodo.jp]さんの話かな
# goto禁止にしてるコーディング規則のチェッカーで後藤さんのコメントが引っかかった話は同僚から聞いたことが
Robert'); DROP TABLE Students;-- さん (スコア:2)
https://xkcd.com/327/ [xkcd.com]
これでしょ
Re:Infinity さんがいるなら (スコア:2)
whoしたらsuというユーザがいたもんだから慌てたら蘇(Su)さんだった。
Re:Infinity さんがいるなら (スコア:1)
trueさんやfalseさんは居そうだな
Re:Infinity さんがいるなら (スコア:1)
「NASI」さんも困らないかなと思って、詳細を思い出せなかったのでぐぐってみたらX68000固有の話だった。
X-BASICをCにコンバートするツールにて、X-BASICでは関数の引数が省略できるがCでは不可なので
X-BASICでの関数コールで省略された引数はCに直すときには'NASI'という整数の定数を渡すように変換するという仕様とのこと。
だからこれは文字列ではないので、NASIさんは困らないのだけれど、
0x4e415349という整数は扱えないということになってしまうのではないだろうか?なんとも乱暴な仕様である。
attrならいいのか? (スコア:0)
しばらくjQueryつかってないからもう忘れたけど、dataはプロパティが不可視で、attrは見えるんじゃなかったっけ?
使うのやめるのが一番な気がする。
Re: (スコア:0)
門外漢だから、なんでjQueryがこんなに流行ってるのかいまだに分らん。そんなに効率が違うものかな?
Re: (スコア:0)
jQueryはもう下火でしょう
Re: (スコア:0)
今は何?
Re: (スコア:0)
Vanilla JS
Re: (スコア:0)
jQueryはHTMLの一部を修飾するような指向で中規模以上のWebアプリにはいまいち。管理し辛い。
代わってフレームワーク型のものが1ページ規模からも採用できるものが出てきている。
機能が被るものを同時に使いたくないからそれならjQuery外そうとなる。
別にjQueryに代わり何かが大ブームになってる訳ではない。いくつかメジャーなものはある。
なんで名前?なんでアメリカ? (スコア:0)
こんなの名前だけに限らないしアメリカだけでもないじゃん。
Re: (スコア:0)
のんでアメリカの名前が引っかかったという具体的事例を出すのにあんたに断らないといけないの?
Re: (スコア:0)
名前は必須入力項目になることが多く、しかも容易に変更できないから。
パスワードだとInfinityを禁止しても問題にならないだろうが、名前ではそうはいかない。
それと問題はアメリカに限定していないのは言うまでもない。
全米に千人以上いるというだけで、他の国にいないわけではないだろう。
#日本人が自分の子供にInfinityと名付けることは禁止されてないしな。
#DQNネームの流れからすると、既に実在しているかもしれない。
Re: (スコア:0)
戸籍法施行規則 [e-gov.go.jp]によると、
> 第六十条 戸籍法第五十条第二項の常用平易な文字は、次に掲げるものとする。
> 一 常用漢字表(平成二十二年内閣告示第二号)に掲げる漢字(括弧書きが添えられているものについては、括弧の外のものに限る。)
> 二 別表第二に掲げる漢字
> 三 片仮名又は平仮名(変体仮名を除く。)
だから、アルファベットは人名に使えないはずだけど。
解決方法 (スコア:0)
ちょっと前はnullで死んでたね。
どのライブラリだとこの文字列がダメってのはよくあるし、今は使えててもバージョンアップでそんな不具合が紛れ込むかもしれない。生な文字列を扱う限り可能性が消えない。
ってことで、文字列は英数字だろうと二バイト文字だろうと、%16進数表記で保持してるw
ところで (スコア:0)
数値を0で割ると無限大なのか?
Re:ところで (スコア:1)
IEEE 754でそうするように決められているので、JavaScriptに限った話ではありません。
《走馬燈を開始します!(指定位置まで人生を巻き戻します)》 (スコア:0)
銀髪ボクっ子のインフィニティーさんに“涅槃の眼”を与えられると、過去を改変できるようになるのですね
# 蒼色輪廻ネタ
知らんがな (スコア:0)
全米で1000人しかいないようなDQNネームがあかんやろ。
Re: (スコア:0)
システムが悪いに決まっている。
たとえ Robert'); DROP TABLE Students;-- ちゃんでもシステムは処理できなければならない。