2011-02-01から1ヶ月間の記事一覧

関数のnameプロパティ

関数宣言パターンでは、読み取り専用のnameプロパティが利用できる。 ただし、値はブラウザによって異なる。 <script type="text/javascript"> function foo(){}; var bar = function(){}; var baz = function baz(){}; alert(foo.name); alert(bar.name); alert(baz.name); </script> Firefox3.6.13…

JSONとJavaScriptオブジェクトの変換

■JSON→JavaScriptオブジェクト var javascript_obj = JSON.parse(json); jQueryの場合は、parseJSONを使用できる。 var javascript_obj = JSON.parseJSON(json); ■JavaScriptオブジェクト→JSON var json = JSON.stringify(javascript_obj);

コンストラクタ使用時にnewを忘れると、コンストラクタ内部のthisがグローバルオブジェクトを指す

平たく言えば、コンストラクタを使用するときはnewを使えってことだね。 //これはOK var constructor_ok = new Method(); //これは使うな var constructor_ng = Method(); ECMAScript5でstrictモードだと、thisはグローバルオブジェクトを指さないようになる…

JavaScriptには空のオブジェクトは存在しない

{}という最も簡単なオブジェクトでも、Object.prototypeから継承したプロパティとメソッドを持っている。

関数$()

$()はdocument.getElementById()の別名のようだが、それはprototype.jsの場合。 jQueryの場合、似ているが、完全に同じではないようだ。

prototypeオブジェクト

prototypeオブジェクトとは、「全ての関数が」持つオブジェクト。 全てのオブジェクトが持つのではなく、全ての関数が持つのである。下記コードでは、 true,false,false,trueと表示される。 var func = function(){ var test = "test"; }; var man = { hands…

暗黙の型変換による間違いを防ぐために、==や!=は使用せずに、===や!==を使用する。

JavaScriptでは、変数を比較するとき暗黙の型変換が行われる。暗黙の型変換とは、例えば、if文の条件式では、undefinedや0がfalseに変換されることである。 if(undefined){ //undefinedはfalseに型変換されて評価されるため実行されない } 暗黙の型変換が行…

for-inループのお作法

結論は、下記である。 プロトタイプ連鎖から来たプロパティを除外するために、メソッドhasOwnProperty()を使用する まず、プロトタイプとは何か。 これは「全ての関数オブジェクトが保持するprototypeというプロパティ」のことだ。で、あるオブジェクトのプ…

forループのお作法

高速化の話でよく出てくるが、forループを書く際は、下記お作法に従うべき。 配列(コレクション)の長さをキャッシュしておく i++は、i = i+1と書くか、i += 1と書く 0にカウントダウンする //良くない例 for(var i = 0; i < array.length; i++){ //処理 } …

関数として呼び出された関数の内部では、thisは必ずグローバルオブジェクトを指す

windowをハードコーディングせずにグローバルオブジェクトにアクセスする必要があるときは、以下のようにすれば、入れ子になった関数のどこからでも実行できる。(JavaScriptパターンp13に書いてあった) var global = (function(){ return this; }());

暗黙のグローバルと、明示的なグローバルの違い

結論から言えば、 暗黙のグローバルは、deleteで削除できる。 明示的なグローバルは、deleteで削除できない。 //明示的なグローバル var explicit_global =1; //暗黙のグローバル implicit_global = 2; //falseが表示される alert(delete explicit_global); …

静岡へ

今週の土日は、静岡へ行ってきました。 目的は、飲み会。大学の寮の仲間で、毎年飲み会を行っている。今年は静岡だった。今年も美味しいお酒と食べ物を堪能した。それにしても、静岡県の日本酒「磯自慢」はやはり美味しい。 蓬莱泉も美味しいのだが、磯自慢…

非同期通信と成功時の処理

jQueryの$.ajaxを使用して、非同期通信が成功した場合に、window.openを使用してウィンドウを開く方法について述べる。結論は、$.ajaxの非同期通信成功時に実行されるコールバック関数successで、window.openを実行すればよい。 $.ajax({ url: "非同期通信先…

1つの記事を消したら、今日書いた全ての記事が消えた

さいてい。。。

暗黙のグローバル

JavaScriptには、暗黙のグローバルという概念がある。 そのため、意図せずにグローバル変数を作成してしまい、それが問題となる場合がある。 意図しないグローバル変数を作成してしまう危険性があるのは、下記2つの場合。 宣言しない変数を使用した場合 var…

SDKって何の略?

SDKはSoftware Development Kitの略。当然知っていたのだが、2011.1 Nikkei Linuxの特別連載「HTML5でつくるAndroidアプリ」の中で、 SDKをStandard Development Kitと書いていたので、「あれ?」と思ったしだい。

外部マウスが接続されている時は、タッチパッドを無効にしたい

タッチパッドに手が触れて、キー入力をしているときに思わぬところにカーソルが移動したり、思わぬところで送信してしまったり、何かと不自由していた。そのため、外部マウスを接続しているときは無効にした。 コントロールパネル →ハードウェアとサウンド →…

変数のスコープ

忘れないためのメモ。以下のsamplef$.ajaxの外で定義された、argは$.ajaxの通信成功時のコールバック関数success内で有効のようだ。 var samplefunc = function(){ var arg = 'test'; $.ajax({ url: "page.php", processData: false, data: xmlDocument, suc…

ブルームバーグ

ブルームバーグというサイトがあるのか。 知りませんでした。http://www.bloomberg.co.jp/?JPIntro=jpintro

Conversion to Dalvik format failed: Unable to execute dex: wrapper was not properly loaded first HelloAndroid 不明 Android Packaging ProblemCommentsAdd Star

Androidアプリを開発するために、新規プロジェクトを作成した際の問題。【環境】 ・OS:Windows7 HoemPremium 64bit ・eclipse3.6.1 - pleiadesを使用して日本語化済 ・Android SDK r9 ・jdk1.6.0_23【エラー内容】 新規プロジェクトを作成(HelloAndroid)…