- + JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net
702 :デフォルトの名無しさん (ワッチョイ f35b-tpgq)[sage]:2017/03/20(月) 10:42:58.03 ID:5J3+8zMD0 - 毎回思うがデタラメ言うやつが多いから気をつけろよ。
こんなのはJavaScriptのスレだけなのだけどね。
|
- + JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net
709 :デフォルトの名無しさん (ワッチョイ f35b-tpgq)[sage]:2017/03/20(月) 14:15:35.01 ID:5J3+8zMD0 - >>694
> 私は、結構そんなコードあるんですが、 一応ヒントだけ言っておくと、 > 私は、次の3つのうちどれかを使えばokって認識なのですが、(>>692) この認識が間違い。 > 一般的にとか、このスレ的に推奨とか、〜の理由でこれを使うべき 一般的に〜の理由でこれを使うべきというのはあって、それはMDNを読めば分かる。 資料やコメントも重要なのだけど、それ以前に、 資料やコメントが無くても分かるコードを目指さないといけない。君はそれができてない。 分かってないやつが書いた資料やコメントなんて使い物にならない。今の君がそう。 だから繰り返しになるが、今はまず、何故そのコードなのかを明確にするように書け。 そして「本来は○○を使うべきだが△△の理由で□□を使っている」場合にそこにコメントつけるんだよ。 そうすれば、自分流のスタイルは統一され、自分のコードが読めないことはなくなる。 次に、他人のコードが読みにくいというのが発生するが、これは上記、 「自分流」と「他人流」が違うから。 ただそれも、だんだん「自分流→他人流」の変換テーブルが出来るから読めるようになる。 その上で、この変換テーブルの作成コストを下げたいというのなら、 「自分流」を世の中の「多数派」に合わせることが必要で、 それは自分であちこちのサイトを巡ってF12押して確認しろ。 ここはマジでデタラメばかり言うやつが多すぎる。
|
- C言語なら俺に聞け 139 [無断転載禁止]©2ch.net
486 :デフォルトの名無しさん (ワッチョイ f35b-tpgq)[sage]:2017/03/20(月) 16:26:02.90 ID:5J3+8zMD0 - つかお前ら、そのエネルギーは>>287にぶつけて有効的に使うべきだろ。
編集日時から、対象は「ポインタ」「配列とポインタ」だし。 ざっくり見たところ確かにいろいろ突っ込みどころが多すぎるが、一つずつやるしかない。 そこでヌルポの記述を抜き出してみる。 > NULLポインタ[編集] > NULLポインタ(ナルポインタ、ヌルポインタ、空ポインタ)とは、 > 何も指しておらず、有効などんなポインタと比較しても等しくならないことが保証されているポインタのことである。 > そのため、返却値にポインタをとる関数の異常時の返却値として用いたり、 > 連結リストで末尾のデータで次の要素がないことを示すために使われたりする。 > なお、NULLポインタを経由して参照した場合、OSが異常を検知して即座にプログラムを停止させてくれることもあるが、 > そうでない環境も存在するので注意が必要である。 [2] > NULLポインタの使用例として、 fopen関数はオープン操作に失敗した場合、空ポインタを返す。 > 詳細はC言語/標準ライブラリ/入出力#fopen関数を参照せよ。 うむ、全部書き直せと言いたくなるのは分かる。 そこで、俺が全部書き直してみよう。 NULLポインタ(ヌルポインタ)とは、 何も指していないことを意味する値が入ったポインタである。 有効なポインタとの比較は、等しくないことが保証されている。 ヌルポインタ同士の比較は、等しいことが推奨されている。(>>453) ヌルポインタ自身の真偽は、偽であることが保証されている。(>>466) これらの仕様等に簡便に整合するため、多くの処理系では0が割り当てられている。 ポインタを返す関数呼び出しが失敗した場合、ヌルポインタを返すことが多い。(fopenやmalloc) これは、成功/失敗の判定が容易であり、また、バグ等でその領域を参照した場合にも、 メモリ保護が行われている一般のOS(Windows等)上ならエラーが検出されるからである。 安価の場所には、仕様書の該当項目へのリンクよろしくってことで。
|
- C言語なら俺に聞け 139 [無断転載禁止]©2ch.net
490 :デフォルトの名無しさん (ワッチョイ f35b-tpgq)[sage]:2017/03/20(月) 17:02:53.83 ID:5J3+8zMD0 - >>487
やたら「前橋和弥著」が多くて臭いってやつか? だったらここ書き換えてしまえば脚注から剥がせるんだから踏み絵になるだろ。 >>488 まあ確かに規格準拠してないケースは無視していいな。では以下か。 (変更無しの場所は> を付けてる) > NULLポインタ(ヌルポインタ)とは、 > 何も指していないことを意味する値が入ったポインタである。 有効なポインタとの比較は、常に等しくない。 ヌルポインタ同士の比較は、常に等しい。(>>453) ヌルポインタ自身の真偽は、常に偽である。(>>466) > これらの仕様等に簡便に整合するため、多くの処理系では0が割り当てられている。 > ポインタを返す関数呼び出しが失敗した場合、ヌルポインタを返すことが多い。(fopenやmalloc) > これは、成功/失敗の判定が容易であり、また、バグ等でその領域を参照した場合にも、 > メモリ保護が行われている一般のOS(Windows等)上ならエラーが検出されるからである。 >>489 いちいち噛み付くなよめんどくせー奴だな。
|
- C言語なら俺に聞け 139 [無断転載禁止]©2ch.net
492 :デフォルトの名無しさん (ワッチョイ f35b-tpgq)[sage]:2017/03/20(月) 17:16:08.32 ID:5J3+8zMD0 - つかそれ何?初めて聞くんだけど?
ひずみ←理系 ゆがみ←文系 とかなの?
|
- C言語なら俺に聞け 139 [無断転載禁止]©2ch.net
493 :デフォルトの名無しさん (ワッチョイ f35b-tpgq)[sage]:2017/03/20(月) 17:19:41.56 ID:5J3+8zMD0 - すまん、ぐぐったら出てきた。てか纏められまくってるな。
しかし、関係ねーなこれ。
|
- + JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net
716 :デフォルトの名無しさん (ワッチョイ f35b-tpgq)[sage]:2017/03/20(月) 18:23:45.84 ID:5J3+8zMD0 - >>711
> Why? > Function declarations are hoisted, which means that it’s easy - too easy - to reference the function before it is defined in the file. > This harms readability and maintainability. > If you find that a function’s definition is large or complex enough that it is interfering with understanding the rest of the file, > then perhaps it’s time to extract it to its own module! > Don’t forget to name the expression - anonymous functions can make it harder to locate the problem in an Error's call stack. > ([Discussion](https://github.com/airbnb/javascript/issues/794)) まずこれが嘘だろ。 関数宣言はどこにでも置けるのだから、関数式を置いている場所においても動作は問題ない。 遠くに置いて見にくくなるのなら、近くに置けばいいだけの話。 結局のところ、訳の分からない場所に置く馬鹿がいることが問題なんだよ。 関数式で前方宣言を強制することは出来る。 しかし、前方宣言が文法的に強制されているCに於いては、糞だと言う人のほうが多い。 だからそれ以降の言語、おそらく全部で、この仕様は捨てられているわけでね。 どこにでも置けるという、より自由度が高い方法を適切に使いこなした場合、 より自由度が低い方法でそれを超えることは出来ないのは当然。 それを馬鹿に合わせてどうするんだ、って話。 ただまあ、JavaScriptにおいては、このスレに限らず、Web上にもこの手のトンデモ情報が多すぎる。 ホームグラウンドだってこともあるのだろう、未熟者がお気軽に情報発信してしまいすぎている。 だから余計におかしくなる。 ただし、実はメンテ性は少し落ちる。 何らかの変更でポインタが必要になった場合、関数宣言→関数式に変えるが、 前方宣言強制になるので、理想的には、最初から関数式で書いた場合に置いたであろう場所 ---(A) に移動させることになる。ところが、2段階とかで呼んでいる場合、それが分かりにくいので、 機械的にやってしまうのなら、関数内の頭に持っていく ---(B) しかなくなる。で、(B)が嫌いなら残念なことになる。気にしないのなら大して問題はない。
|
- + JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net
717 :デフォルトの名無しさん (ワッチョイ f35b-tpgq)[sage]:2017/03/20(月) 18:25:08.33 ID:5J3+8zMD0 - というのは、C出身の俺は「出来るだけプログラマに委ね、プログラマ自身が最適化すべき」と考えるから。
Pythonはそうじゃないから、彼らは上記を読んだら発狂するのかもしれないが。 ただ、JavaScriptは「何でも出来る系」の言語なんだけどね。
|
- + JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net
718 :デフォルトの名無しさん (ワッチョイ f35b-tpgq)[sage]:2017/03/20(月) 19:17:45.58 ID:5J3+8zMD0 - ああすまん、間違ってた。
Pythonは前方参照禁止なんだな。驚きだわ。 Cで糞々と言われる前方参照禁止を採用←Python COBOL以来(多分)の文法的インデントを採用←Python Pythonはかなりクレイジーだな。 そしてJavaScriptをPython流にすると関数式強制になるのかもしれん。 なお改行については以下参照 > A Python programmer attempting Java > https://i.imgur.com/wG51k7v.png 諸悪の根元はPythonerか?
|
- + JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net
721 :デフォルトの名無しさん (ワッチョイ f35b-tpgq)[sage]:2017/03/20(月) 20:58:49.82 ID:5J3+8zMD0 - >>719
すまん、改行じゃなくて括弧だったわ。(まあ改行もだが) 俺は初めて見た時には一瞬フリーズした。 そしてその後、波括弧がうぜーってのはこういうことかーと思った。 >>711 追加。 > でも関数宣言より関数式を使うほうが一般的なんかね? 俺は専門ではないが、少なくとも俺は全面的に関数式のソースは見たことがない。 今数サイト見てみたが、普通に関数宣言が使われている。 そして多分今後とも「全面的に関数式」にはならないと思う。 他言語(C/C++/Java/C#)から来た連中が「全面的に関数式」で書くはずがないし。 なお日本語ページは逆となっている > 7.1 関数式より関数宣言を利用してください。 > https://github.com/mitsuruog/javascript-style-guide#関数functions 状況からすると改訂されたのだろう、おそらく以下。 const foo = function () {}; // × function foo() {} // △ const foo = function bar() {}; // ○ いずれにしてもAirbnb自体は有名らしい。 一体こいつらがどんなコードを書いているのかと思って探してみたが、 リーダーは確かにこの通り書いているね。 https://github.com/ljharb 個人的には余計に見にくくなっていると感じるが、この辺は所詮慣れだからねえ。
|
- + JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net
724 :デフォルトの名無しさん (ワッチョイ f35b-tpgq)[sage]:2017/03/20(月) 23:02:03.61 ID:5J3+8zMD0 - >>722
一応ここはWeb上の議論で改訂されてるらしいから、漁れば出てくるはずだけど、 俺はGit慣れしてないから無理だ。試しに数個ポチって見たが出てこない。 Git慣れしてるんならクローンしてローカルで検索出来るんじゃねーの?知らんけど。 https://git-scm.com/book/ja/v1/Git-%E3%81%AE%E5%9F%BA%E6%9C%AC-%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E5%B1%A5%E6%AD%B4%E3%81%AE%E9%96%B2%E8%A6%A7
|
- + JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net
726 :デフォルトの名無しさん (ワッチョイ f35b-tpgq)[sage]:2017/03/20(月) 23:41:37.98 ID:5J3+8zMD0 - >>725
これちなみにGitHub上で検索した?やっぱローカルクローンから? なお、見た目は7.11に合わせる為に間違えて修正してしまったようにも見える。
|