1: 稼げる名無しさん 2021/04/07(水) 18:24:58.25 0.net
Javascript Logic
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”
だけど混乱を招きそうだし、こんなコードを書くのは問題があるかと。
やる夫も大分成長したな。だけど混乱を招きそうだし、こんなコードを書くのは問題があるかと。
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」となってくれるが「.」の使い方がもったいないよね
しています
例えばperlだと「.」を迂闊にも贅沢に文字列結合演算子に割り当てているので
「+」はオーバーロードされず数値和演算子に専用に用いられているため
文字列が数値へ自動キャストされて「21」となってくれるが「.」の使い方がもったいないよね
50: 稼げる名無しさん 2021/04/07(水) 20:46:43.63 0.net
>>14
Perlじゃ比較演算子も文字列用と数値用が分かれていて
振る舞いが非常に明確
これが良い所で贅沢でももったいなくもない
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"となる
・数値に適用される時は足し算、文字列に適用される時は文字列結合、とオーバーロード適用される
・オーバーロードの優先順位は文字列が優先であり、文字列と数値に対して適用される時は、数値側が文字列へ自動キャストされる
・いずれの場合でも「+」は左結合であり複数の「+」が同順位にある場合は左から適用
つまり1+2+3+4+5+"6"の結果は文字列の"156"となる
21: 稼げる名無しさん 2021/04/07(水) 19:20:56.97 0.net
>>1
クッソwwwwwwwwwwwwwwwwwwwww
クッソ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"になるのはおかしい
1+2+3+4+5+"6"が"123456"や"156"になるのはおかしい
29: 稼げる名無しさん 2021/04/07(水) 19:31:42.83 0.net
>>26
1+2は3で合ってるよ
あなたの主張が間違っている
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が間違ってると言ったよどアホ
>>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項演算子ならば漫画のような状況になりうるが事実は違う
つまり漫画の作者がアホすぎて
+が二項演算子であるという基本事項を知らなかったことが敗因だよね
もちろん+が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っておかしなことやってんだな
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
コメント
コメント一覧 (22)
雰囲気でコーディングしてた。
money_soku
がしました
キャラクターもかわいい
money_soku
がしました
1+2+3とか書く機会とか、どんな言語でもどんな状況でもあると思えない
money_soku
がしました
money_soku
がしました
“+”だと交換可能に見えるから、というのが理由らしい
money_soku
がしました
money_soku
がしました
ややこしいな
money_soku
がしました
money_soku
がしました
money_soku
がしました
money_soku
がしました
オプーナに似てる
money_soku
がしました
↓
やっぱり意外といけるやんけ!さすが普及するだけあるな
↓
なんやこのそびえたつクソ言語・・絶滅しろ
money_soku
がしました
C、C++信者だからメモリ管理も型定義もしないのが気持ち悪くて仕方なかった
あと、人のコード読むのにすごい苦労する
money_soku
がしました
money_soku
がしました
まぁ、色々と言われる仕様でも結局、プログラム言語を作って広く使われている時点で利用者は使うしかないわけで。
どんな凄いPGでも言語を作った人の前ではひれ伏すしかない。
money_soku
がしました
money_soku
がしました
だからクソなんだよ
money_soku
がしました
「びっくりする結果」はバグに繋がる可能性が高いから、素直にエラーにする仕様のほうが良いよね。
money_soku
がしました
コメントする