ブログ・エス技研

当ブログは引越しをしました。10秒後に自動で転送しますが、転送されない場合は、http://blog.s-giken.net/ をご覧ください。
ブログ・エス技研 TOP  >  スポンサー広告 >  JavaScript >  初めて JavaScriptを勉強してみた

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --年--月--日 --:-- ] カテゴリ:スポンサー広告 | TB(-) | CM(-)

初めて JavaScriptを勉強してみた

これまで敬遠してきた言語がある。
それは、JavaScriptである。

なぜなら、ブラウザによって実装方法が大きく違い、実装する際のデバッグが非常に大変だからだ。
そして、実際にやったことがなかったことがその恐怖心にも似た間隔を増幅させて JavaScriptを遠ざけてきた。

しかし、AJAXをやってみよう!と決心したときから JavaScriptを敬遠するわけにはいかなくなった。


そんなわけで、昨年末頃から時間を見つけて JavaScriptを使って AJAXの仕組み、組み込みの勉強をしているわけですが、プログラムの記述の方法そのものは PHPとそれほど大きく違うこともないために、あと離れの問題なのかな、という感じもしました。
しかし、JavaScriptの使われ方というか、仕組みが全く違う言語ですので、プログラムの書き方と言うより実装の方法を理解、納得する方が大変な感じがしますね。
そして、どの言語に対してもそうなのですが、これを使いこなすには、それこそ場数をこなしていくしかないんじゃないか、と。

こういうときはこういう実装方法をした方がいいね!そんな風に思えてくるまでにはやや時間がかかりそうです...


さてさて、前置きが長くなりましたが、今日は JavaScriptからです。

以下のようなサンプルソースがありました。
for文でぐるぐる回すところは PHPと変わりありませんので、構文としては理解しやすいのですが、「JavaScript length」というプロパティをググルと「文字列の長さ」と出てくるわけです。

サンプルソースとしては動いているため、「文字列の長さ」では違うような気がするわけですが、「文字列の長さ」と説明してあるページがいろいろと出てくるわけです。

-----(サンプルソース)-------------------------------
for(i = 0; i < item.length; i++){
  var title = item[i].getElementsByTagName('title');
  var titleValue = title[0].firstChild.nodeValue;
   (以下略)
}
------------------------------------------------------


最初は JavaScriptとはそういうものかと思うことにして、先に進んでいたわけですが、for文はあちこちに出てきますので、やはり気になって仕方がないのです。


そこで改めて調べなおした結果、下記のページにたどり着きました。

5種類の .length(JavaScript おれおれ Advent Calendar 2011 - 11日目)
http://ginpen.com/2011/12/11/types-of-length/

そこには衝撃的な事実が。
「JavaScript の .length プロパティは、どのオブジェクトに使うかによって意味が違ってくる!」ということを知ったのです。

配列のプロパティとして使うのか、文字列のプロパティとして使うのかによって意味が違ってくるようなのですが、JavaScriptと言う言語は、プロパティの使い方によってこういった意味の違いがあると言うことを始めて知ったわけです。
PHPの場合は、文字列なのか配列なのかによって使うコマンドは違いますので、「どちらにも使えるにもかかわらず、意味が違うという場合があるのか!?」という衝撃を受けました。

逆に、JavaScriptを学び始めたこのタイミングでこういったオブジェクトによってプロパティの意味が違うと言う場合があると言うことを知ることが出来たことはラッキーだったのでしょう。
今後、同じ様な状況に行き当たった場合はすばやく対応できるようになるでしょう。

それにしても、言語が違っても基本構文は大きく違わないけれど、細かなところではぜんぜん違う発想のものがあるなぁ、と改めて感じさせられましたね。


ちなみに、文字列のプロパティとして使った場合に取得出来る文字数は、バイト数が返ってくるのではなく、文字数が返ってくるようです。
半角英数字であっても、全角の文字であっても、全角の Unicodeの文字であっても、1文字は 1文字として処理されるようですね。
スポンサーサイト
[ 2013年01月15日 17:17 ] カテゴリ:JavaScript | TB(0) | CM(0)
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL

プロフィール

エス技研

Author:エス技研
性別:男性
職業:Web系エンジニア
エンジニアになって 15年ほど経ちますが、その途中で 5年ほどディレクタ、マネジメントを中心とした業務を行っていたためにやや現場を離れていましたが、転職をきっかけに 2012年に現場に復帰し、新たな技術を楽しみながら勉強しています。
メインの環境は LAMP環境です。

FC2ブログランキング
FC2カウンター
FC2拍手ランキング
GoogleAdWords
カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
検索フォーム
ブロとも申請フォーム
QRコード
QR
フリーエリア


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。