JavaScript の型に対する中途半端な寛容さに馴染めない(^^;

今まで、自分で JavaScript を触ることがあんまりなかったので、この中途半端な「型への寛容さ」に苛つきながらコード書いてます(^^;

変数宣言時に特に型を宣言することなく使えるのは Perl などのスクリプト言語と一緒だけど、なんか中途半端なんだよなあ>JavaScript

例えば、

var a = 100;
var b = 50;

と変数を宣言して、

var c = a + b;

とかすると、変数 c には '10050' って文字列として結合されたものが代入されちゃう。
Perl のように、「.(文字の結合)」と「+(数字の足し算)」と言うように演算子が個別に用意されてないから仕方ないんだけど、
こういう時、いちいち

var c = parseInt(a) + parseInt(b);

とか書くの面倒くせえ!!

しかも、その後でこの変数 c を正規表現使って、

c = c.replace( /(\d)(?=(\d\d\d)+(?!\d))/g, '$1,');

こんなふうに「3桁ずつカンマを打つ」処理しようとしたら、「オブジェクトは'replace'プロパティまたはメソッドをサポートしていません。」のエラーが・・・とほほ・・・

これ、変数 c が「数値型」の変数になってるためで、例えば、

c = c + ""

みたいな「文字列としての計算」を replace メソッドを使う前にダミーでしてやればエラーは出ない。
replace メソッドが文字型の変数しか受け付けないというわけだ。

中途半端~(^^;
そんなん、replace メソッドが使われた時は、自動で文字型にキャストすればええやん(^^;

まったく、JavaScript の、この変数型について「寛容」なのか「厳格」なのかわからないところが嫌い(^^;

「厳格」ではないけど「狭量」って感じか・・・(^^;

トラックバック(0)

このブログ記事を参照しているブログ一覧: JavaScript の型に対する中途半端な寛容さに馴染めない(^^;

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/3396

コメントする

このブログ記事について

このページは、shinodaが2015年4月23日 18:54に書いたブログ記事です。

ひとつ前のブログ記事は「いったいいつになったら「カープ激闘の記憶」を飲めるのか・・・」です。

次のブログ記事は「全粒粉の中華そばは美味いわぁ~」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら