電気ウナギ的○○

About Home

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

shinoda (2015年4月23日 18:54)
今まで、自分で 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 の、この変数型について「寛容」なのか「厳格」なのかわからないところが嫌い(^^;

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

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/3396

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE