読者です 読者をやめる 読者になる 読者になる

7cc@はてなブログ

JavaScriptとかとか

You might not need jQuery は間違いだらけ

JavaScript jQuery

すこし話題になっている(いた?)ようだが、jQueryを使ったことの無い私が気付いただけで間違いが10個あった。

サイトはここ
GitHubにソースがある

見つけた間違い

60個あるうち10個
つまり全体の1/6, 16.6%

内容についてはレポジトリ参照(そこまでする利点は無いので見なくてよいです)

メソッド どうしたか
children 既にissueにあった
contains issue出した
empty issue出した
fadeIn issueで指摘されたのに確認されないまま閉じられたのでコメントした
trigger issue出した
offset PR(Pull Request)が間違っていたのでコメントした
outerWidth/Height PRを取り入れていたが、やはり間違っていたのでコメントした
AJAX グローバル変数になっている。onloadの中も変。面倒なので何もしない。
parseHTML childNodesを使うべきところでchildren。何もしない。

※表だと9だが、outerのところで2つなので10とカウント

trigger, offset, outerHeight は 2014/03/06現在 まだ修正されていない。
emptyは修正しないようだ。
さらに、formの部品になる要素のcloneNodeなど、本当は要修正がまだある(IEではコピーした要素のvalueが空になる)。

このレポジトリのオーナーは

  • jQueryのソースを全く読まず
  • まともにテストもせず

に書いている。断言できる。

まだ間違いはありそうだけど、もうこれ以上はやめよう´ω`)

見た時にはすでに修正されていたが、isArrayの方法がメチャクチャだった。これ一つだけでもどれだけひどいかが十分に分かる。

isArray = Array.isArray || function(arr) {
  return arr.toString() == '[object Array]'
}

とてもひどい。目を疑うレベル。

反応

はてなブックマーク
間違いがparseHTMLにしか触れられていない。好意的に受け止めているコメントすらある。

(追記:
元々この箇所には 同はてなブックマークページ下部にある「このエントリーを含むはてなブログ」の中からいくつかのサイトについて書いていたが、不要なので削除した。)

海外の反応

*某サイトとは関係ありません。

Github

3000スター以上付いている。どういうことなの・・・

jQuery作者のツイート

この返しが面白い

雑感

  • 素直にjQuery使うほうが良い。必要な部分だけコピーして使うこともできるわけで。
  • 前述の通り誤りがあるのでサイトのコードは決して使わないように
  • スターやブックマークの数は、それだけJSが分からない人がいるということを示している

下を見てもしょうがないのでこれくらいで。