私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript & jQuery 質問用スレッド vol.7 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
const縛りすると結局関数型チックに書くことになるじゃん?
だって
let {a,b,c} = obj
のときもしa,cに変更が無ければ
const {a,c} = obj
let {b} = obj
とするの?
それでやっぱりaは書き換えるとなったらまた変えるの?ってことになる
そういうちぐはぐ一切なくそうと思えば結局変数は使い切りの関数型チックに書くことになる
自分は バカバカしい宗教まがいなことだと思うけどね
だって
let {a,b,c} = obj
のときもしa,cに変更が無ければ
const {a,c} = obj
let {b} = obj
とするの?
それでやっぱりaは書き換えるとなったらまた変えるの?ってことになる
そういうちぐはぐ一切なくそうと思えば結局変数は使い切りの関数型チックに書くことになる
自分は バカバカしい宗教まがいなことだと思うけどね
っていうか単純にルールを固く捉え過ぎているだけじゃね?
Googleもそういう形を想定してはないと思うんだけど
言ってて流石におかしいと思わないのかね?
まああえて言えば頑なに歩道を走らない自転車的な感じだな
Googleもそういう形を想定してはないと思うんだけど
言ってて流石におかしいと思わないのかね?
まああえて言えば頑なに歩道を走らない自転車的な感じだな
>>803
関数型チックにするのはすごく良いプログラミング習慣である
というのはおいといて、おまえ大きな勘違いしてるなぁ。
> let {a,b,c} = obj
> のときもしa,cに変更が無ければ
普通は、abcを変更することがないから
const {a,b,c} = obj でいいんだよ
で、なに? bを変更したくなったら?
そんなもん、 const bb = b + 1 ってすりゃいいだけだろ
何がチグハグなんだ?
おまえがやり方知らないから「うわー、letにするしか思いつかねー」
って言ってるだけじゃんか。本当に情けない
関数型チックにするのはすごく良いプログラミング習慣である
というのはおいといて、おまえ大きな勘違いしてるなぁ。
> let {a,b,c} = obj
> のときもしa,cに変更が無ければ
普通は、abcを変更することがないから
const {a,b,c} = obj でいいんだよ
で、なに? bを変更したくなったら?
そんなもん、 const bb = b + 1 ってすりゃいいだけだろ
何がチグハグなんだ?
おまえがやり方知らないから「うわー、letにするしか思いつかねー」
って言ってるだけじゃんか。本当に情けない
あっはっは、自分が出した例を逆に利用されて
bを書き換えない一番簡単な例をだされて
こりゃ屈辱だろうなぁ。関数型とか言うまでに
こんなのも思いつかないようなやつだとはな
bを書き換えない一番簡単な例をだされて
こりゃ屈辱だろうなぁ。関数型とか言うまでに
こんなのも思いつかないようなやつだとはな
以前constの仕様見てこれはすべき!と思ったがIE10以下アウトだったのでやめたことがある
まだいるからな
今のところ命名と名前空間で十分かな
まだいるからな
今のところ命名と名前空間で十分かな
変数に代入した値を書き換えないっていうのは方針だから
別にvarであっても書き換えなければ良いだけ
constが使えないのは諦める原因にはならないよ。
varを使って書き換えなければそれで十分。
constは単なるチェック機構にすぎない。
力さえあればIE10以下でも、constを使うのと同じような
コードを書くことはできる。ようはconstの何が
素晴らしいかを理解してそれを実現できるか
別にvarであっても書き換えなければ良いだけ
constが使えないのは諦める原因にはならないよ。
varを使って書き換えなければそれで十分。
constは単なるチェック機構にすぎない。
力さえあればIE10以下でも、constを使うのと同じような
コードを書くことはできる。ようはconstの何が
素晴らしいかを理解してそれを実現できるか
function(a){
a=a+ホゲ;
return a;
}
みたいに、aを上書きしない方がいい?
a=a+ホゲ;
return a;
}
みたいに、aを上書きしない方がいい?
関数のargumentsを書き換えようとしたとき or 同じ関数内で同じarguments名を変数名で使おうとしたときに
エラー吐くような宣言てなかったっけ?
function sum(a){
const a=a+10;
return a;
}
console.log(sum(10));}
エラー吐くような宣言てなかったっけ?
function sum(a){
const a=a+10;
return a;
}
console.log(sum(10));}
途中で送信しちゃった
>同じ関数内で同じarguments名を変数名で使おうとしたときに
は816で防げそうだけど、
>argumentsを書き換えようとしたとき
はそもそもargumentsは>>815の言うように変更しない、というのを心の中で決めておくってこと?
>同じ関数内で同じarguments名を変数名で使おうとしたときに
は816で防げそうだけど、
>argumentsを書き換えようとしたとき
はそもそもargumentsは>>815の言うように変更しない、というのを心の中で決めておくってこと?
>>818
例えば
http://jsfiddle.net/k9ganf4u/
同じ関数内でzという変数名を使いたいのでブロックに入れました
が、関数の引数名にzを使っていた場合
http://jsfiddle.net/k9ganf4u/1/
Uncaught ReferenceError: z is not definedというエラー文になりました
SyntaxErrorになってほしいのですが無理でしょうか
例えば
http://jsfiddle.net/k9ganf4u/
同じ関数内でzという変数名を使いたいのでブロックに入れました
が、関数の引数名にzを使っていた場合
http://jsfiddle.net/k9ganf4u/1/
Uncaught ReferenceError: z is not definedというエラー文になりました
SyntaxErrorになってほしいのですが無理でしょうか
結局句点で自演バレしてて哂う>>797
イベントを登録するときに度々疑問に思うのですが
var obj={};
$().click(function(){
var hoge=obj;
console.log(hoge);
});
こういう感じでclickのイベントを定義するときに
外から何かしらの値を代入する(したい)ときがよくあります
ですが何かモヤモヤするのですがそれで良いのでしょうか?
var obj={};
$().click(function(){
var hoge=obj;
console.log(hoge);
});
こういう感じでclickのイベントを定義するときに
外から何かしらの値を代入する(したい)ときがよくあります
ですが何かモヤモヤするのですがそれで良いのでしょうか?
>>824
言ったそばから句点なしで自演を隠そうとしても無駄w
言ったそばから句点なしで自演を隠そうとしても無駄w
>>823の間違い
>>823
その書き方に何の問題もない。
その書き方に何の問題もない。
>>827
問題ないんですね。ありがとうございました。
問題ないんですね。ありがとうございました。
constがなくても注意して書けばconstを
使ったのと同じように良い書き方はできる
ようは注意するかどうか
注意していればミスなどしない
使ったのと同じように良い書き方はできる
ようは注意するかどうか
注意していればミスなどしない
俺としてはconst使おうが使うまいが再代入禁止が
広まってくれればどっちでもいいよ
広まってくれればどっちでもいいよ
言っておくけどね、ただの『再代入禁止』は手枷足枷を付けるだけの行為で最悪だぞ?
あくまで『再代入する必要がない設計』に価値があるんだぞ?
関数型言語は言語仕様やAPIや環境がそれ向けに整っているから効果があるんだぞ?
JSの場合、まずその環境を整える必要がある
だから単なるスタイルの話として語るのは無理がある
例えばイベント制御にjQuery使うの辞めてRxJSにしようとか、
そういう具体的な話でなく広く推奨することはできない
あくまで『再代入する必要がない設計』に価値があるんだぞ?
関数型言語は言語仕様やAPIや環境がそれ向けに整っているから効果があるんだぞ?
JSの場合、まずその環境を整える必要がある
だから単なるスタイルの話として語るのは無理がある
例えばイベント制御にjQuery使うの辞めてRxJSにしようとか、
そういう具体的な話でなく広く推奨することはできない
jQueryをちゃんと使って書けば普通に再代入する必要ないやん?
まずその環境を整える必要があるとか言うが
単に関数型で書きやすくするライブラリである
jQueryとlodashを導入すれば良い
単に関数型で書きやすくするライブラリである
jQueryとlodashを導入すれば良い
JavaScriptで学ぶ関数型プログラミング
http://www.oreilly.co.jp/books/9784873116600/
JavaScript関数型プログラミング 複雑性を抑える発想と実践法を学ぶ
http://book.impress.co.jp/books/1115101137
http://www.oreilly.co.jp/books/9784873116600/
JavaScript関数型プログラミング 複雑性を抑える発想と実践法を学ぶ
http://book.impress.co.jp/books/1115101137
jQueryはモナドだ とかいうブログあるけどさっぱり分からん
http://blog.anatoo.jp/entry/20100305/1267801847
jQueryは関数型言語っぽいってことなんだろうけど
モナドってなんなんや?
http://blog.anatoo.jp/entry/20100305/1267801847
jQueryは関数型言語っぽいってことなんだろうけど
モナドってなんなんや?
>>823
こういう場合objを引数で渡すのは冗長かな?
$().click(function(obj){
その必要ないのはわかるが若干安全なのと
この関数はこの変数使ってるとすぐわかるので
長くなってくると特に
こういう場合objを引数で渡すのは冗長かな?
$().click(function(obj){
その必要ないのはわかるが若干安全なのと
この関数はこの変数使ってるとすぐわかるので
長くなってくると特に
> こういう場合objを引数で渡すのは冗長かな?
冗長だね
なぜならクロージャーっていうのは
そういう場合に引数で渡さなくて良いように
作られているから
クロージャーの「機能」はうまく使うべきだし
「機能」を捨ててまで冗長化する意味がない
冗長だね
なぜならクロージャーっていうのは
そういう場合に引数で渡さなくて良いように
作られているから
クロージャーの「機能」はうまく使うべきだし
「機能」を捨ててまで冗長化する意味がない
>>836 あえて悪い言い方で言うw
要するに再代入を無くそうという理念でありクロージャとか論外な関数型言語でも
結局値を保持して再利用するということが一切できないとまともなプログラミングなんて不可能だから
関数型のメンツをギリギリ保った状態でそれを出来るようにするための苦肉の策
つまり、モナド=関数型副作用w
要するに再代入を無くそうという理念でありクロージャとか論外な関数型言語でも
結局値を保持して再利用するということが一切できないとまともなプログラミングなんて不可能だから
関数型のメンツをギリギリ保った状態でそれを出来るようにするための苦肉の策
つまり、モナド=関数型副作用w
>>829-830
注意してバグが全部防げるなら苦労は無い
注意してバグが全部防げるなら苦労は無い
そもそも再代入しない設計になってるんなら
再宣言はletだって防げるんだしconstに拘る必要なくね
つうかどうせ仮にconstで再代入で引っ掛かったとしても
letに変えるか別の変数増やすだけでしょ
それが最初からletだったら本当にまずかったって場合は年に1回もないよ絶対
再宣言はletだって防げるんだしconstに拘る必要なくね
つうかどうせ仮にconstで再代入で引っ掛かったとしても
letに変えるか別の変数増やすだけでしょ
それが最初からletだったら本当にまずかったって場合は年に1回もないよ絶対
constはない話をしてるんだが
constが使えずletが使えない環境なんてあるのか?
constが使えずletが使えない環境なんてあるのか?
constベース気になってたので便乗で質問します
どうしてもconstを使えない場合はletで
というのを初心者サイトで見たのですが
そういう場合というのは,forのvar i=0みたいなところでしょうか?
どうしてもconstを使えない場合はletで
というのを初心者サイトで見たのですが
そういう場合というのは,forのvar i=0みたいなところでしょうか?
>>846
いやそうでもない
ぶっちゃけ今はfor(let i = 0; i < 10; i++) みたいな
iを+1し続けていくようなコードは書かない
大抵inやofを使う。この場合constでよい
指定した回数ループするってことがまず少ないんだが
その場合は [...Array(3).keys()] のような書き方で
配列を作って配列の数だけforEachすることで実現できる
といってもこの書き方は可読性が悪いのでlodashなどを使うのが良い
_.range(10).forEach(i => console.log(i)) みたいな感じだな
いやそうでもない
ぶっちゃけ今はfor(let i = 0; i < 10; i++) みたいな
iを+1し続けていくようなコードは書かない
大抵inやofを使う。この場合constでよい
指定した回数ループするってことがまず少ないんだが
その場合は [...Array(3).keys()] のような書き方で
配列を作って配列の数だけforEachすることで実現できる
といってもこの書き方は可読性が悪いのでlodashなどを使うのが良い
_.range(10).forEach(i => console.log(i)) みたいな感じだな
なるほど参考にします >>847
こっちの書き方のほうが元のfor(var i =0~に
似ていて分かりやすかったかな?
for(const i in _.range(10)) {
console.log(i)
}
もしくは
for(const i in [...Array(10).keys()]) {
console.log(i)
}
似ていて分かりやすかったかな?
for(const i in _.range(10)) {
console.log(i)
}
もしくは
for(const i in [...Array(10).keys()]) {
console.log(i)
}
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript & jQuery 質問用スレッド vol.7 + (701) - [100%] - 2022/12/19 17:15
- + JavaScript & jQuery 質問用スレッド vol.8 + (1001) - [98%] - 2019/2/9 14:00
- + JavaScript & jQuery 質問用スレッド vol.6 + (980) - [98%] - 2016/11/20 14:31
- + JavaScript & jQuery 質問用スレッド vol.5 + (993) - [98%] - 2016/6/11 14:30
- + JavaScript の質問用スレッド vol.76 + (1001) - [72%] - 2010/3/10 4:02
- + JavaScript の質問用スレッド vol.87 + (1001) - [72%] - 2011/6/21 6:33
- + JavaScript の質問用スレッド vol.78 + (1001) - [72%] - 2010/6/25 3:53
- + JavaScript の質問用スレッド vol.79 + (1001) - [72%] - 2010/9/11 6:50
- + JavaScript の質問用スレッド vol.77 + (1001) - [72%] - 2010/5/8 19:06
- + JavaScript の質問用スレッド vol.97 + (1001) - [72%] - 2012/3/1 3:31
- + JavaScript の質問用スレッド vol.74 + (1001) - [72%] - 2009/12/1 6:08 ○
- + JavaScript の質問用スレッド vol.75 + (1001) - [72%] - 2010/1/23 1:07 ○
トップメニューへ / →のくす牧場書庫について