■ このスレッドは過去ログ倉庫に格納されています
JavaScriptのlet宣言ってまじでいらなくね?
- 1 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:21:55.506 ID:uyUx6Wvx0.net
- a、b:なんかの配列
x:なんかの値
for (let i=0; i<10; i++) {
if (a[i] == x) break;
}
b[i] ・・・ ; // iはスコープ外なので未定義だから使えない
さて、どうしてた?
- 2 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:22:54.141 ID:nUtlyD/10.net
- this.av
- 3 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:25:18.860 ID:uyUx6Wvx0.net
- あげ
- 4 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:26:15.219 ID:B3XVI/o+0.net
- 変数にいれとけ
- 5 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:26:47.451 ID:E1zKeY0yd.net
- 要らないやつはvarでいい
使いたいやつだけ使えばいい
- 6 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:27:19.554 ID:eo9foVINa.net
- まずfor文でlet iとかしてる時点であり得ない
- 7 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:28:10.620 ID:uyUx6Wvx0.net
- だから、どうしてたんだよw
あとでおれの答えは書くよ
- 8 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:28:25.567 ID:8XuY59+z0.net
- findIndexでググれ
- 9 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:28:33.047 ID:8NOqFO9Ad.net
- Array#foreach使えよ
- 10 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:28:52.193 ID:eo9foVINa.net
- for文ではfor ofかfor in以外使ってはいけない。
- 11 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:30:47.129 ID:IN6jkkEd0.net
- どうしてたってなんだよ日本語話せよ
- 12 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:31:11.205 ID:uyUx6Wvx0.net
- てかスレタイ見てる?w letいらないよな?って話だぞ
- 13 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:31:27.608 ID:1/LvTva40.net
- 恐ろしく頭悪そう
- 14 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:32:00.516 ID:vR6pYNTB0.net
- 日本語下手過ぎてワロタ
コイツまともなプログラム組めないだろうな
- 15 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:32:10.640 ID:eo9foVINa.net
- というかfor文自体害悪。
map,reduce,filter等を使うべき
- 16 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:33:38.006 ID:uyUx6Wvx0.net
- 答え
(function(){
var i;
for (i=0; i<10; i++) {
if (a[i] == x) break;
}
b[i] ・・・ ; //
}())
ポイント
・即時関数を使ってスコープを限定する
・スコープ内で使う変数を全て最初の行で宣言する
- 17 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:34:39.903 ID:uyUx6Wvx0.net
- スレタイ見れば普通は分かるんだけど、これはスコープの話な
まともなレスは一つもつかなかったな
- 18 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:35:48.509 ID:eo9foVINa.net
- >>16
こんなコードを書かれたらブチ○したくなる
- 19 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:36:23.958 ID:8NOqFO9Ad.net
- 例がつっこみドコロ多いってはなし
- 20 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:37:29.180 ID:1/LvTva40.net
- >>18
なんで?
- 21 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:38:06.864 ID:8XuY59+z0.net
- 答え
{
let i;
for (i=0; i<10; i++) {
if (a[i] == x) break;
}
b[i] ・・・ ; //
}
ポイント
・即時関数は要らない
・というかそもそもfor文を使うべきでない
- 22 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:41:18.046 ID:uyUx6Wvx0.net
- >>21
これ言うやつ絶対出ると思ったw
即時関数を使いたくない理由は何?
- 23 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:48:05.669 ID:uyUx6Wvx0.net
- まあw 即時関数は使うななんて言ってるやつ現実にはいないからなw
letは完全に不要なものなんだよな、なんでこんなもん実装しなきゃならんくなったのかな
- 24 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:48:53.630 ID:2cV4aUuyd.net
- どっちでもええやろ
宗教戦争はやめろよ
- 25 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:53:50.419 ID:UJF0VsId0.net
- 結果が同じならシンプルな方で書くだけだろ
- 26 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:54:24.876 ID:uyUx6Wvx0.net
- >>24
よくないんだよなあ
宗教戦争ではあるんだがlet支持者はJavaScriptが理解できてないか嫌いな奴なんだよ
そもそも即時関数を排除する必要がないのだから即時関数でブロックスコープ作ればletなんかいらないんだよな
- 27 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:57:51.268 ID:8XuY59+z0.net
- 流石にこれはネタくさい
マジレスして損した
- 28 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:58:07.223 ID:2cV4aUuyd.net
- varでええやん
- 29 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 16:58:45.440 ID:uyUx6Wvx0.net
- >>25
シンプルなのはどっちだと思う?
JavaScriptは変数宣言はvarしかなくてスコープは関数スコープしかなかった
とってもシンプルだったんだよ
letが導入されてシンプルさが失なわれたけどね
- 30 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 17:00:39.235 ID:uyUx6Wvx0.net
- >>28
そう、JavaScriptの仕様を理解しているなら即時関数とvarで問題は起こらない
- 31 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 17:04:32.368 ID:uyUx6Wvx0.net
- ID:8XuY59+z0 はマジレスしてたらしいw むしろバカの振りして煽ってるんだと思ってたよw
- 32 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 17:26:29.631 ID:ykTXSJ73d.net
- let i;
for (i=0; i<10; i++) {
if (a[i] == x) break;
}
b[i] ・・・ ;
これじゃダメ?
- 33 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 18:01:43.716 ID:uyUx6Wvx0.net
- >>32
>>21と同じ答えだけど、即時関数でなくてletが必要な理由があるか?ということ
- 34 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 18:14:44.622 ID:ykTXSJ73d.net
- >>33
即時関数だとわざわざ明示的に書かなきゃスコープが制限できない
letならとりあえず全部letにしとけばいい
っていうのが利点じゃない?
- 35 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 18:31:39.420 ID:uyUx6Wvx0.net
- >>34
そんな雑なやり方はだめだと思うぞ
letを使うにしてもスコープは意識して{}で括らないといけない
c言語ならvoid main()とか書くのと同じで
JavaScriptは関数で囲う、変数宣言は全てスコープの先頭で行なう
ということをやればletは全くいらない
- 36 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 18:34:00.980 ID:IN6jkkEd0.net
- >>35
そんな雑なネタレスはダメだと思うゾ
- 37 :以下、?ちゃんねるからVIPがお送りします:2018/08/16(木) 18:46:58.244 ID:yZ+wzf0xd.net
- a.findIndexOf(x).map!(i => b[i]);
総レス数 37
8 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★