JavaScript の質問用スレッド vol.126 (307レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
187
(1): (ワッチョイ d15e-4mIM [240b:12:203:6300:* [上級国民]]) 2024/04/20(土) 14:12:14.37 ID:7dIwEOD00(1/3)調 AAS
>>186
JavaScriptはCromeやFirefox等のブラウザ作ってる所が各自で動作するエンジン作れと丸投げしてるが

仕様書にあたるECMAScriptが長い間ES5というバージョンのまま止まってた
その頃には変数宣言はvarのみだった

流石に今時のプログラミング言語にしようぜって事でECMAScriptの強化が始まり(ES6というプロジェクト)
最終的に2015年からは毎年強化した仕様を出しましょうという話になった

その最初の成果物とも言えるES2015で変数宣言としてvarの他にletとconstの2つが追加

for (var i = 0; i < 5; i++) {
setTimeout(() => console.log(i))
}

これの出力結果が4が5個連続で表示される
違和感があるが、
letのブロックスコープによって解消されてるのでvarはもう二度と使うなという風潮が出来た
(それ以外にもvarは関数の先頭で纏めて書かないと変な動きする箇所がちらほら見受けられ、コーディング規約で制限されていた)

また値がコロコロ変わる状態変数が多いと
登場人物がやたら多い粗悪な小説みたいになって作業者が困るので
「再代入禁止の変数」を求める声が元々多かった

その要望を汲んだ再代入禁止のconstも実装されたため
必要になるまで全てconstでプログラミングして、必要な箇所だけ最小限にletを使いましょうという風潮が比較的早く出来た
188
(1): (ワッチョイ d15e-4mIM [240b:12:203:6300:* [上級国民]]) 2024/04/20(土) 14:22:49.70 ID:7dIwEOD00(2/3)調 AAS
constは直訳すれば定数だが

JSのconstは再代入しちゃいけませんよってだけで
基本は普通の変数として取り扱う
配列やオブジェクト、関数、インスタンスなんかもconstで宣言出来るね

他言語のletみたいなものと考えると良い

constで宣言したオブジェクトや配列は再代入禁止なだけで、中身は普通に加工出来てしまうのも作りとして良くない

const arr = [1, 2, 3];
arr.push(4);
console.log(arr);
// [1, 2, 3, 4]

この辺は勝手に加工しないよう運用でカバーやね
値は基本的に複製しまくってガベージコレクションで掃除してもらう

パフォーマンスチューニングで仕方なく一つの値を加工しまくる時はライブラリ化したり関数で固めたりして、メインロジックの邪魔にならないようにすること
192
(1): (ワッチョイ d1f1-4mIM [240b:12:203:6300:* [上級国民]]) 2024/04/20(土) 22:27:55.19 ID:7dIwEOD00(3/3)調 AAS
>>190
lodashは関数型プログラミング的な値の加工を司るフレームワークだぞ
一部だけ利用させて頂いて関数片の集合体ライブラリとして使うことも出来るがな

フレームワークは機能を提供するライブラリであると共に
大きなプロダクトを作っていく為のファイル・関数・モジュール置き場をルールで区切ってここに設置してくださいねー
こういう司書さんみたいな役割も担ってる

複数人でプロダクトを触ったり
半年後にどれどれ?と帰ってきて読み直した時にナニコレ?にならない為に
プログラミングスキルの良し悪しに限らず
適切なフレームワークがあるなら使った方が良い

フレームワークを使わん機能を作る時でも
関数やファイルを作って保管するタイミングで「このフレームワークの考え方は好きだな、同じディレクトリ名を作ってそこに保管しよう」
自然とこういう発想が生まれる

なのでフレームワークを使い分けてる人間は引き出しが多くなっていき
可読性の良いプロダクトを作る能力も養われる

結局フレームワーク無しで適当に関数やファイルを作って放り投げるばかりで
読み辛いプロダクト作ってる奴なんて3流の雑魚だよ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.030s