あまりに基本的なプログラミング言語としての巨大な欠陥が
いまだに放置されたままでいることに
どなたも何も是正措置をとらずにいるのかが分からないため
ここで専門の先生方におたずねさせていただこうと思い立ちました。
Fortran でさえも変数名の定義の際には
integer N real S character(4) MOJI77 ``` このように、数値用の変数と文字列用の変数が明確に分けられて 計算が混乱することがありませんでした。 ところが、なぜか javascript の場合には 同じ変数が数字代入処理をしたのちに 足し算をしたら
N=48
N=N+61 ---> N: 4861
理解不能な処理が当然である設定にされていることが 不思議でなりません。 いったい、どこにお願いをすれば、変数定義の欠如を是正していただけるのでしょうか。 よろしくお願いいたします。
N=48
N=N+61
console.log(N) // 109
だと思いますが?
N=48
N=N+61
console.log(N) //109
ん?
まぁたとえ数値として扱う前提ならparseIntすればいいだけの話ではないですか?
質問ではなく主張になってませんか
八百屋へ行って「ここには新鮮な魚がおいてなくて不便だ!」とかクレームをつけても、まず相手にはしてもらえないですよね。
「勝手に変質」してくれるから手軽にできるようになる処理もあるので、一度awkとか勉強してみると視野が広がると思います。
>どこに訴えれば
TC39宛てでしょうね。
https://es.discourse.group/
> このように、勝手に変数が整数用から文字列変数に変質させられるという
> 理解不能な処理が当然である設定にされていることが
> 不思議でなりません。
記載されている内容では再現しません、再現可能なソースコードをお願い致します。
> 勝手に変数が整数用から文字列変数に変質させられるという理解不能な処理
有り得ない問題なので、再現率100%の再現条件を特定してから質問して下さい。
https://ja.stackoverflow.com/help/minimal-reproducible-example
質問者さんの過去のご質問の一覧を見るとプログラミング言語としてJavaScript以外のものが見当たらないので分かりませんが、Fortranを挙げておられるのを見ると、型付きのプログラミング言語のご経験しか無かったと推察します。で、「プログラミング言語とはかくあるべし」と前提を決めつけられているのではないでしょうか。その前提に無理がある気がします。文化や用途、目的がそれぞれ異なるはずです。「どこに訴えれば解決されるのか?」という疑問に収束しているので、低評価はしませんけれど。
実行もしていないコードを、実行したかのごとく質問文に載せないようにしましょう。
ブラウザ上で動くのは JavaScript だけではありません。変更されるかどうかもわからない訴えをして待つ間に C# や C++ や Rust で組めば良いのでは?