1: 稼げる名無しさん 2021/04/07(水) 18:24:58.25 0.net
Javascript Logic

EyNnvf9XIAI9-pl


2: 稼げる名無しさん 2021/04/07(水) 18:27:24.36 0.net
爆笑

3: 稼げる名無しさん 2021/04/07(水) 18:30:18.29 0.net
プリミティブ型とオブジェクトの違いを理解しているか否か

5: 稼げる名無しさん 2021/04/07(水) 18:35:48.13 0.net
おもろいやん

6: 稼げる名無しさん 2021/04/07(水) 18:37:42.69 0.net
プログラマじゃないからわからない

1001: 以下名無しさんに代わりまして管理人がお伝えします 1848/01/24(?)00:00:00 ID:money_soku


”156”
だけど混乱を招きそうだし、こんなコードを書くのは問題があるかと。
giro
 やる夫も大分成長したな。






1001: 以下名無しさんに代わりまして管理人がお伝えします 1848/01/24(?)00:00:00 ID:money_soku




現在よく読まれているニュース!:






以下2chの反応と管理人の反応です






7: 稼げる名無しさん 2021/04/07(水) 18:38:44.88 0.net
数字扱いが文字列きたら全部文字列扱いになるのが変って意味かな
ほとんどのスクリプト言語ってそうだけどな

8: 稼げる名無しさん 2021/04/07(水) 18:39:50.49 0.net
>>1
スクリプト言語では型が動的で自動キャストされるものも多い
さらに演算子は型ごとにオーバーロードされる
その自動キャストで型がどう引っ張られるかの醍醐味
状況はプログラミング言語毎に異なる

9: 稼げる名無しさん 2021/04/07(水) 18:42:01.61 0.net
これの正解って"156"だけどな

11: 稼げる名無しさん 2021/04/07(水) 18:44:18.91 0.net
>>9
だよね
ポイントは
・演算子の左右結合優先度
・演算子のオーバーロード適用時の自動キャスト優先度

12: 稼げる名無しさん 2021/04/07(水) 18:47:28.77 0.net
JavaScriptなんだし別に演算子をオーバーロードしてるわけじゃない

14: 稼げる名無しさん 2021/04/07(水) 18:49:48.38 0.net
>>12
しています
例えばperlだと「.」を迂闊にも贅沢に文字列結合演算子に割り当てているので
「+」はオーバーロードされず数値和演算子に専用に用いられているため
文字列が数値へ自動キャストされて「21」となってくれるが「.」の使い方がもったいないよね

50: 稼げる名無しさん 2021/04/07(水) 20:46:43.63 0.net
>>14
Perlじゃ比較演算子も文字列用と数値用が分かれていて
振る舞いが非常に明確
これが良い所で贅沢でももったいなくもない

15: 稼げる名無しさん 2021/04/07(水) 18:50:55.54 0.net
意味はわかったけどだから何としか

16: 稼げる名無しさん 2021/04/07(水) 18:52:33.68 0.net
キャストの話か

20: 稼げる名無しさん 2021/04/07(水) 19:03:04.57 0.net
JavaScriptで「+」演算子は
・数値に適用される時は足し算、文字列に適用される時は文字列結合、とオーバーロード適用される
・オーバーロードの優先順位は文字列が優先であり、文字列と数値に対して適用される時は、数値側が文字列へ自動キャストされる
・いずれの場合でも「+」は左結合であり複数の「+」が同順位にある場合は左から適用

つまり1+2+3+4+5+"6"の結果は文字列の"156"となる

21: 稼げる名無しさん 2021/04/07(水) 19:20:56.97 0.net
>>1
クッソwwwwwwwwwwwwwwwwwwwww

22: 稼げる名無しさん 2021/04/07(水) 19:21:40.87 0.net
文字列になったらもう数字じゃないから紫マンは1人でなければいけない

25: 稼げる名無しさん 2021/04/07(水) 19:27:11.18 0.net
昭和のプログラマだけどわからんかった

26: 稼げる名無しさん 2021/04/07(水) 19:28:04.62 0.net
1+2の時点で3にならないのに
1+2+3+4+5+"6"が"123456"や"156"になるのはおかしい

29: 稼げる名無しさん 2021/04/07(水) 19:31:42.83 0.net
>>26
1+2は3で合ってるよ
あなたの主張が間違っている

36: 稼げる名無しさん 2021/04/07(水) 19:41:02.30 0.net
>>29
>>1の漫画で3になってないんだよ
1+2が1+2のままで3になる"きっかけ"が与えられていない以上、1+2+3+4+5+"6"もいつまでも1+2+3+4+5+"6"ってこと
誰が1+2は3が間違ってると言ったよどアホ

39: 稼げる名無しさん 2021/04/07(水) 19:44:49.95 0.net
>>36
つまり漫画の作者がアホすぎて
+が二項演算子であるという基本事項を知らなかったことが敗因だよね
もちろん+がn項演算子ならば漫画のような状況になりうるが事実は違う

27: 稼げる名無しさん 2021/04/07(水) 19:29:13.99 0.net
別に面白くはない
映画館でこのジョーク分かるって大声で笑う恥ずかしさ

32: 稼げる名無しさん 2021/04/07(水) 19:36:17.86 0.net
ただの解説なだけで面白くは無いな

33: 稼げる名無しさん 2021/04/07(水) 19:37:47.37 0.net
暗黙のキャストなんか利点あるの?
バグの温床になってるような気がすんだが

44: 稼げる名無しさん 2021/04/07(水) 20:13:24.11 0.net
コンパイラがこんなおかしな計算はじくはずなんだけど
JavaScriptっておかしなことやってんだな

47: 稼げる名無しさん 2021/04/07(水) 20:18:58.95 0.net
>>44
インタープリタとコンパイラの違い教えてほしい?

57: 稼げる名無しさん 2021/04/07(水) 21:22:31.74 0.net
>>44 >>45
スクリプト言語すら使ったことがない連中は無知すぎてヤバイな
もちろんスクリプト言語しか使ったことがない連中も当然ヤバイけど
特定のプログラミング言語方面しか知らない連中は知っている世界が狭すぎてプログラマーとして疑問符

45: 稼げる名無しさん 2021/04/07(水) 20:16:16.52 0.net
こういうガバガバ結合できる 言語ってどうなん?

48: 稼げる名無しさん 2021/04/07(水) 20:22:14.62 0.net
>>45
スクリプト系はみんなこーだぞ

49: 稼げる名無しさん 2021/04/07(水) 20:24:23.10 0.net
簡単に試せるスクリプトなんだから試してから漫画書けば良かったのに

51: 稼げる名無しさん 2021/04/07(水) 20:47:40.71 0.net
>>1間違ってんのかよしょーもないなw

1001: 以下名無しさんに代わりまして管理人がお伝えします 1848/01/24(?)00:00:00 ID:money_soku




確かな力が身につくJavaScript「超」入門 第2版




現在よく読まれている記事:






引用元:http://hayabusa3.2ch.sc/test/read.cgi/morningcoffee/1617787498