【Javascript】Javascriptの型制約について+オブジェクト型を調べる
Javascriptって型に関してゆるすぎないか
他の言語を利用してきた人はそういった印象をもつのではないでしょうか?
経験の浅い自分も同じような印象を持ちました。
では、そもそもなぜ型が必要なのか?
型のゆるさによって、開発者にどのような影響があるのか?
そもそもなぜ型が必要なのか?については的を得たような体系的な記事が見つからず断念。(わかる方がいたらぜひ教えていただきたいです。経緯とか内部の制約とか)
なので、開発者にどのような影響について少し調べてみました。
参考URL:http://d.hatena.ne.jp/perlcodesample/20130227/1361928810
どうやら賛否両論があるようですね。
自分の置かれる環境(開発の規模・自身の経験・使用言語)によってかなり左右される模様。
よむだけでとても勉強になると思うので是非読んでみてください。
ちなみに下記のソースは、変数のオブジェクトを出力する部品。
実際に使用されるまで?は、オブジェクト宣言時では、object型なのが
ちょっと面白かった。
なぜ、宣言時にすぐに宣言したオブジェクトの型に変換されないのかは不明なので、
知りたい。
<html>
<head></head>
<body>
<h2>オブジェクトの型名を表示する部品</h2>
<body>
<script Language="JavaScript" type="text/javascript">
w=new Object();
t=new String();
document.write("object型を宣言:"+typeof(w)+"<br>");
document.write("String型を宣言:"+typeof(t)+"<br>");
d=new Date();
w="test";
t="test";
document.write("object型を宣言(代入後):"+typeof(w)+"<br>");
document.write("String型を宣言(代入後):"+typeof(t)+"<br>");
<!--
///メモ オブジェクト宣言時は、基本object型///
////w=new Object();
t=new String();
///メモ オブジェクト宣言時は、基本object型///
-->
<!--
///メモ2 値を代入すると、型変換する///
////w="test";
t="test";
///メモ2 値を代入すると、型変換する///-->
</script>
</body>
</html>