底辺過ぎてちょっとビビる

26歳からIT業界にいるエンジニアが、まったく成長できてないことを確認するブログ。備忘録的に使いたいとも考えています。

【javascript】.lengthをメソッドだと思ってた件【プロパティ】

今の今まで、javascriptの「.length」をメソッドだと思っていた。配列などのデータサイズを取得するメソッドだと思っていた。

 

 

var name = 'teihen tarou';

window.alert(name.length);

 

で出力される結果の12はメソッドの戻り値だと思っていた・・・・・

Javascriptじゃなくて、Javaのlength()はメソッドで、Javascriptのlengthはメソッドではなく、オブジェクトのプロパティなんだね。

 

これと関連して?Javascriptにおける変数のオブジェクト(プロパティ)の使い方を知ったのでメモ書きする。

 

Javascriptのソースを読んでいて今までスルーしていたけど、以下のような記述があったりする。

 

var student{

    name:'太郎',

    age:15,

    class:'3-3'

};

 のようななんか入れ子構造になっている記述。これはオブジェクトといって、ちょっと特殊な変数の使い方だ。雑な言い方になるけど、変数に入っている変数のようなもの。

 

何か処理を行うものを、メソッド。そうでないものをプロパティ。どちらもオブジェクト。

 

オブジェクト(プロパティ/メソッド

という感じでよいだろうか。

 

上記のプロパティの内容を主力したい場合は以下のように「.」で変数名.プロパティなどとすればよい。

 

window.alert(student.name + '/' + student.age + '/' + student.class);

出力結果は当然、

太郎/15/3-3

となる。

 

プロパティは入れ子構造も可能で、以下のように記述することも可能

 

var student{

    name:'太郎',

    age:15,

    class:'3-3'

    address{

    area:'東京'

     }

};

 

上記のような入れ子構造になってる場合でも「.」で繋げて表現する。LinuxUNIXなんかのディレクトリパスをイメージするとわかりやすいだろうか。

 

window.alert(student.name + '/' + student.address.area);

 

出力結果は以下のようになる

太郎/東京

 

 配列の要素それぞれに名前を付けるような感じかしら。

 

ふう~~~~。初歩的すぎて申し訳ないです。同じような勘違いしてる人いないかな?!

 

確かな力が身につくJavaScript「超」入門 (確かな力が身につく「超」入門シリーズ)

確かな力が身につくJavaScript「超」入門 (確かな力が身につく「超」入門シリーズ)

 
パーフェクトJavaScript

パーフェクトJavaScript

 
jQuery入門道場

jQuery入門道場

 
スッキリわかるJava入門 第2版 (スッキリシリーズ)

スッキリわかるJava入門 第2版 (スッキリシリーズ)

 
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)