[過去ログ] + JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
701: (アウアウウー Sa37-Rmg3) 2017/03/20(月)10:41 ID:dCGuhToEa(1) AAS
再利用出来そうなら関数文、出来なさそうなら関数式で分けてるわ
702: (ワッチョイ f35b-tpgq) 2017/03/20(月)10:42 ID:5J3+8zMD0(1/8) AAS
毎回思うがデタラメ言うやつが多いから気をつけろよ。
こんなのはJavaScriptのスレだけなのだけどね。
703: (フリッテル MM7f-EJeZ) 2017/03/20(月)12:34 ID:RyskYj8DM(1/4) AAS
>>692
対象の変数値によって最適解が異なる。

// ToNumber 系
Number(px);
+px;

// 文字列パース系
parseInt(px);
parseFloat(px);

// DOM API 系
element.valueAsNumber
省4
704: (フリッテル MM7f-EJeZ) 2017/03/20(月)12:42 ID:RyskYj8DM(2/4) AAS
>>697
変数の巻き上げ(hoisting)を望まないなら変数宣言を行い、そうでないなら関数宣言を使用すれば良い。
>>6のJavaScript Gardenを参照する事を推奨する。
巻き上げを望まないなら const, let を使いたくなるだろうが、対応ブラウザの関係でトランスコンパイラなしでは扱いにくいところがあるので、要求パフォーマンス及び対象ブラウザ次第といえる。
705: (アウアウカー Sa57-Rmg3) 2017/03/20(月)13:30 ID:1qi4KoAma(1) AAS
const大好きっ子だから早く完全に対応してほしい
少なくとも9割はconstにしたい
706: (フリッテル MM7f-pqpN) 2017/03/20(月)13:52 ID:cId9IEOYM(1) AAS
constはオブジェクトに優しくないからなー
707
(1): (ワッチョイ bf5b-YDOq) 2017/03/20(月)13:56 ID:+zI9Fl+i0(1) AAS
const長いから3文字ぐらいに縮めて欲しい
708: (アウアウカー Sa57-4frl) 2017/03/20(月)14:06 ID:OAxC6OTFa(1) AAS
constはインデントが揃わないから嫌い
709: (ワッチョイ f35b-tpgq) 2017/03/20(月)14:15 ID:5J3+8zMD0(2/8) AAS
>>694
> 私は、結構そんなコードあるんですが、
一応ヒントだけ言っておくと、
> 私は、次の3つのうちどれかを使えばokって認識なのですが、(>>692)
この認識が間違い。
> 一般的にとか、このスレ的に推奨とか、〜の理由でこれを使うべき
一般的に〜の理由でこれを使うべきというのはあって、それはMDNを読めば分かる。

資料やコメントも重要なのだけど、それ以前に、
資料やコメントが無くても分かるコードを目指さないといけない。君はそれができてない。
分かってないやつが書いた資料やコメントなんて使い物にならない。今の君がそう。
省10
710: (アウアウカー Sa57-4frl) 2017/03/20(月)14:39 ID:mV22Zu+/a(1) AAS
この句点付きはいつものキチガイだから無視するように
こいつの言ってることが既にデタラメだからな
711
(3): (ワッチョイ bf3c-y/cv) 2017/03/20(月)17:01 ID:G9+XvfW+0(2/5) AAS
ファイルの中で全体から部分へ詳細化する形で書けるから俺は関数宣言のほうが断然好み
でも関数宣言より関数式を使うほうが一般的なんかね?

外部リンク:airbnb.io
外部リンク:medium.com

Airbnbなんかは関数宣言使うと可読性とメンテナンス性が落ちるって書いてるけど
関数式使ってるのほうが可読性が低いと感じるコードが多いと思ってる
712: (ワッチョイ bf3c-y/cv) 2017/03/20(月)17:04 ID:G9+XvfW+0(3/5) AAS
あとNumber vs parseIntは俺は基本Numberを使う
基数指定が不要で可読性が高いから
parseInt使うのは特別なケース
仕事のコードなら規約に従うけどね
713: (フリッテル MM7f-EJeZ) 2017/03/20(月)17:07 ID:RyskYj8DM(3/4) AAS
> 「自分流」を世の中の「多数派」に合わせることが必要で、
わけも分からず、多数派に合わせるのはお勧めしない。
自分の中で納得できる理屈を確立できるまで突き詰める探求心こそが必要。
流行次第で変化する多数派に合わせることはそれ程重要ではない。
観測範囲によっても多数派は変わるだろうしな。
714: (フリッテル MM7f-EJeZ) 2017/03/20(月)17:22 ID:RyskYj8DM(4/4) AAS
>>711
一般的かどうかは分からないが、関数式を使う人の心理としては「関数定義後に関数呼び出しする原則」を徹底したいのだと思う。
関数宣言では宣言の記述前に関数呼び出しする事が出来てしまう。
勿論、コーディング規約やポリシーで制限することは出来るのだが、宣言前に呼び出したらエラーになる強制力が欲しいと感じるのだろう。

> 関数式使ってるのほうが可読性が低いと感じるコードが多いと思ってる
個人的には同意なのだが、
所詮、可読性は主観的な評価なので慣れてしまえば、どちらでも大した違いはないと思う。
「どちらが可読性が高いか」ではなくて「どちらが自分にとってしっくりくるか」という感覚的なもの。
可読性でいうならアロー関数は可読性が低いと感じるが、新しいもの好きやショートコーダの人は平気で書くだろう。
それは「可読性を落としてでも書くメリットがある」か「自分自身の目を養って自分の可読性能を上げよう度努力した(慣らした)」のだと思う。
省2
715: (アウアウウー Sa37-Rmg3) 2017/03/20(月)17:50 ID:9zw9z92Za(1) AAS
>>707
var、let、と来てるんだからconでいいのに
716: (ワッチョイ f35b-tpgq) 2017/03/20(月)18:23 ID:5J3+8zMD0(3/8) AAS
>>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](外部リンク:github.com
まずこれが嘘だろ。
関数宣言はどこにでも置けるのだから、関数式を置いている場所においても動作は問題ない。
省17
717: (ワッチョイ f35b-tpgq) 2017/03/20(月)18:25 ID:5J3+8zMD0(4/8) AAS
というのは、C出身の俺は「出来るだけプログラマに委ね、プログラマ自身が最適化すべき」と考えるから。
Pythonはそうじゃないから、彼らは上記を読んだら発狂するのかもしれないが。
ただ、JavaScriptは「何でも出来る系」の言語なんだけどね。
718
(1): (ワッチョイ f35b-tpgq) 2017/03/20(月)19:17 ID:5J3+8zMD0(5/8) AAS
ああすまん、間違ってた。
Pythonは前方参照禁止なんだな。驚きだわ。

Cで糞々と言われる前方参照禁止を採用←Python
COBOL以来(多分)の文法的インデントを採用←Python

Pythonはかなりクレイジーだな。
そしてJavaScriptをPython流にすると関数式強制になるのかもしれん。
なお改行については以下参照
> A Python programmer attempting Java
> 画像リンク[png]:i.imgur.com
諸悪の根元はPythonerか?
719
(1): (アウアウカー Sa57-4frl) 2017/03/20(月)19:37 ID:86KGYLzra(1) AAS
>>718
括弧が気持ち悪すぎる
720: (ワッチョイ 53ee-RygQ) 2017/03/20(月)20:54 ID:jSqJf+ps0(2/2) AAS
つうか何度も話題に出てるがlet,constは巻き上げされないというのは誤り
そもそも変数とはスコープ内で有効になるものなのだから、
スコープ内のどこで宣言されても変数として巻き上げされるのは当たり前
巻き上げされないのは変数自体ではなくて変数の初期化(利用可能化処置)
初期化句以前では初期化以外での参照不可状態に設定されているだけ
このエリアを通称TDZと言う
1-
あと 282 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.018s