Webデザイン、フロントエンド開発をする上でMDNって使えますか?皆さんのご意見を頂戴致したく。多分他の皆さんも本当の所を知りたがっていると思ってますので。
私としては、JavascriptについてはMDNは優秀だと思います。Web入門、HTML入門では誤訳?みたいなのがあったりしたのでちょっと不安感があったりします。
なのでMDNはWeb技術を学習する上でどのくらい役に立つのかというところですね。今はUdacity, Schooなどもありますし、W3Cのソースもあります。あと書籍と他サイトですかね。HTMLとCSSはみんながつかっているので良質なサイトが沢山あるような気もします。
そこのバランスをどんな感じで使われているかを沢山の人にご回答いただけるといいのかなと思います。
2017/12/22 23:09 追記:
そういえばHTML概要とか、翻訳途中なんですよね。私はChromeでGoogle翻訳ボタンをよく使うのですがMDNだけGoogle翻訳ボタンが使えないんですよね。そういう意味でApple Developersより使いづらくなってる感はあります。MDNを入門サイトとして使う日本人が少ないんでしょうね。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
ベストアンサー
MDN の用途
MDNはJavaScriptでも仕様としてはやや間違っていることがあるので、心から信頼してはいません。
- Firefoxの仕様を知りたい時に有用
- 仕様書のリンクを追いたい時に有用
- Compatible Table が有用 (今ではcaniuseに押され気味ですが)
- 仕様を追いかけるのが労力的につらい時の導入サイトとして有用
リファレンスとしては、4つめの場面で使うことになり、そこそこの信頼性で良いと判断できる場合限定で使っています。
所詮はブラウザベンダーのサイトなので、「Firefoxの仕様を知りたい時に利用」が本来の用途なのだと認識しています。
IEの仕様を知りたくて、MSDNから情報を追うようなものです。
(2017/12/23 10:40追記)
x_x さんよりMSDNに行くとMDNにリダイレクトされるという情報を頂きましたので、後述します。
MSDNは閉鎖され、MDNへ統合
ドキュメントを一元管理する為にWebブラウザのドキュメントをMSDNに一本化する流れなのだそうです。
- マイクロソフト、Google、W3C、Mozillaらが協力。それぞれのWebブラウザのドキュメントをMozillaサイトに一本化。あちこちのWebサイトを見て回らなくても済むように - Publickey
- Documenting the Web together - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
そこで innerHTML
のドキュメント参照を試みたところ、確かにリダイレクトされました。
↓
しかし、MDNはブラウザベンダーの情報としては足りてないですね。
旧来のIE(IE8-?もう忘れました)でtable関連要素がinnerHTMLで書き換えられない、という仕様が書かれていません。
これは「古きIEは捨ててMicrosoft Edgeを使ってください」というMSからのメッセージなのでしょうか。
しかし、それなら「Edge独自の仕様orバグ」がMDNに記載されていなければならないのですが、私は見たことがありません。
MDNにどこまで「IE/Edgeの仕様」が書かれているのかが不明なので、私としては歓迎できない流れですね…。
「Web標準仕様」と「Webブラウザの仕様」
HTML/CSS/JavaScriptの仕様には二種類あります。
- Web標準仕様 (W3C, WHATWG, Ecma International 等の標準化団体が定めた実装が遵守しなければならない標準仕様)
- Webブラウザの仕様 (Google Chrome, Firefox, IE, Edge 等の各Webブラウザが持つ独自の仕様)
私が「仕様」と書いたときには大体前者ですが、後者の仕様を知りたい時に私は MDN, MSDN, caniuse, その他Compatible Tableサイトを利用してきました。
ブラウザベンダーとしてのMDN
MDNは「Webブラウザの仕様書」の位置づけで「Firefoxベンダーが作成したリファレンス」です。
つまり、Firefox独自の仕様にも触れられています。
例えば、過去に「typeof
演算子で RegExp オブジェクトを判定した時の返り値がWebブラウザによって異なる」という事象がありました。
JavaScript
1console.log(typeof /test/); // "object" or "function"
当時のFirefoxでは "object" を返し、Google Chrome では "function" を返しました。
なぜ、そうなるかといえば、Google Chrome 及び Firefox は /test/
に暗黙の内に RegExp.prototype.exec
の機能を持たせていたからです(この機能は ECMAScript には存在しない独自拡張です)。
RegExp.prototype.exec は関数([[Call]]
を持つ)の為、typeof 演算子は "function" を返さなければなりません(MUST)。
ところが、Firefox は暗黙の内に RegExp.prototype.exec を持っていながら、typeof 演算子が "object" を返す動作でした。
おそらく、ECMAScript では本来、RegExp.prototype.exec を持っていない為、本来のECMAScriptと同じ振る舞いをするように typeof 演算子の返り値をコントロールしていたものと考えられます。
しかし、[[Call]] を持ちながら、typeof 演算子が "object" を返す動作は意図的にECMAScriptに違反しています。
現在では Google Chrome, Firefox から「暗黙のRegExp.prototype.exec」の機能が取り除かれ、Firefox, Google Chrome の typeof 演算子は "object" を返すようになりました。
現在はありませんが、機能が取り除かれるまではMDNの「RegExp.prototype.exec()」のページに暗黙のexecについて説明がありました。
このようにMDNは「Firefox独自の仕様」を知る時は役立ちます。
これはMDNに書かれた情報が「Firefox独自の仕様」と「Web標準仕様」のどちらなのか、を区別しなければならない、という事でもあります。
MDNはある程度、Firefox独自の仕様と区別できるように配慮されているようですが、十分な注意が必要です。
MDN上の間違った用語
MDNでは「function文」や「スプレッド演算子」など、間違った用語が散見される為、私個人としては表現方法においてMDNの印象が良くありません。
(「function - JavaScript | MDN」ですが、以前のタイトルは「function文」でした。
現在ではタイトルだけ修正されていますが、本文上では「function 宣言」と「function 文」が存在し、表現上の揺らぎが見られます。)
正しくは「関数宣言(FunctionDeclaration)」であり、「スプレッド要素(SpreadElement)」です。
- 14.1 Function Definitions - ECMAScript® 2017 Language Specification
- 12.2.5 Array Initializer - ECMAScript® 2017 Language Specification
実際、日本人でMDNを参考にする人は多く、間違った用語を使う人を何度も見てきました。
特に「スプレッド演算子」についてはそれが正しい用語だと思っている人が大半であり、ブログやリファレンス、Q&Aサイトの多くが「スプレッド演算子」と表現しています。
私の知る限りでは正しく使っていたサイトは JS.next だけでした。
細かいことかもしれませんが、間違った用語から誤解が進むこともあるので、用語は正しく使ってほしいと思っています。
Re: anndonut さん
投稿2017/12/22 13:31
編集2017/12/23 02:53総合スコア18194
0
ベンダー提供のサイトですし、今やMSの情報を取得しようとすると転送される技術文書まとめサイトのようになっています。
厳密なところまで見たいならもちろん仕様書を当たったほうがいいでしょうが、そうでなければこれ以上はないのではないでしょうか?
Mozilla、Microsoft、Googleがブラウザ横断Webドキュメントネットワーク構築で協力
http://www.itmedia.co.jp/news/articles/1710/19/news072.html
マイクロソフト、Google、W3C、Mozillaらが協力。それぞれのWebブラウザのドキュメントをMozillaサイトに一本化。あちこちのWebサイトを見て回らなくても済むように
http://www.publickey1.jp/blog/17/googlew3cmozillawebmozillaweb.html
投稿2017/12/22 09:05
総合スコア13749
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
2017年12月27日現在での結論です。質問の投稿当時はMDNの翻訳コミュニティと関わりが無かったのですが、今現在ではMDNの翻訳コミュニティと関りを持っています。なので、そのコミュニティの内部から見た回答としてご覧いただければと思います。
MDNには日本語翻訳のコミュニティがあり、少ない人数ですが細々と翻訳のボランティアをしてくださっています。今はボランティアの数よりも翻訳対象のドキュメントの数の方が圧倒的に多く、翻訳されていないページも多いというのが実情です。Glossary(用語集)とLearning Area(初心者用ページ)が特に手つかずであると聞いています。
投稿2017/12/27 10:00
編集2017/12/31 05:40総合スコア667
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/27 14:20

退会済みユーザー
2017/12/28 01:23

退会済みユーザー
2017/12/28 03:04

退会済みユーザー
2017/12/31 05:55

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/22 14:24
退会済みユーザー
2017/12/22 22:31
2017/12/23 01:54 編集
退会済みユーザー
2017/12/23 02:06
2017/12/25 00:53
2017/12/25 07:07
2017/12/25 07:26
2017/12/27 14:09
2017/12/29 01:51