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

関数内部で使用できる特殊なオブジェクト arguments

argumentsは、関数内部で使用できる特殊なオブジェクトであり、関数の引数を格納してある。 argumentsは、宣言なしで使用できる。 例えば、下記コードは有効で、順番に1,2,3と表示される。 <script type="text/javascript"> //関数の定義 var func = function(){ var len = arguments.length</script>…

長野旅行

先日の土日を利用して、長野へ旅行に行ってきた。行った場所は、長野市内の全般と善光寺だ。特に印象的だったのは、善光寺の「お戒壇巡り」だ。お戒壇巡りとは、床下の真っ暗な回廊を歩いて、「極楽の錠前」に触れることを目的とする道場のこと。ここで、真…

Developers summit 2011

後輩が行ってきた。 僕は仕事だったのでいけなかった。資料があった。

APIの作成にあたって。提供する関数の引数は、オブジェクトにするのが良いのか。

最近、迷っていたこと。関数を作成する際、その引数は関数内部で使用するプロパティをひとつにまとめたオブジェクトにすべきか、それともプロパティを個別に引数として渡すべきか。例えば、下記関数を作成したとしよう。 function api(arg1, arg2){ ・・・・…

showModalDialogについての問題点

下記サイトを参照。 問題だらけのshowModalDialog 去年、私がぶつかって解決した問題も幾つかある。下記も参考。 http://d.hatena.ne.jp/replication/20100117/1263694945 http://www.confrage.com/javascript/window/modal_dialog/modal_dialog.html

Google、「Android 3.0」の正式版SDKを提供開始

Googleが「Android 3.0」の正式版SDKを提供開始したとのこと。http://itpro.nikkeibp.co.jp/article/NEWS/20110224/357621/

JavaScriptのテストツール

FuncUnitとかQUnitとか。勉強しておこう。 FuncUnit QUnit

JavaScriptのスレッド

後で読んで、勉強すべし。JavaScriptはほんとにシングルスレッドで実行されているのか?setTimeOut系の処理

letの使用について

{}ブロックでのみ有効な変数を宣言するためにletを使用すれば良いと思い、下記のスクリプトを書いた。 期待する動作は、1,2,1と順番にアラートダイアログで表示する動作だ。 しかし、動作しなかった。 動作確認を行ったブラウザはfirefox3.6.13とIE8だ…

{}内のスコープでのみ有効な変数の宣言方法

JavaScriptでは、Javaと異なり、括弧({})によるスコープ定義というものはない。 スコープを定義できるのは関数なのだ。例えば、下記のコードでは、順番に1,2,2と表示される。 var x=1; alert(x); { //ここで宣言した変数は{}内でのみ有効とはならない var …

非同期イベントとコールバック関数setTimeout()

実行すると、次のような順番でユーザにalertダイアログが表示されるコードを示す。 beforeと表示する afterと表示する setTimeoutが呼ばれてから5秒後に、funcを実行する(5 seconds passedと表示する) <script type="text/javascript"> var func = function(){ alert("5 seconds passed");</script>…

jQueryのeach関数

eachとかfilterとか、勉強しておこう。

配列のコピー

間違いを犯していたので、メモ。 下記のように、関数の中で新しい配列outputDataを作成して、inputData(これも配列)にコピーしたつもりだったが、参照しか渡せていない。 outputDataは関数内でのみ有効な変数なので、関数の外に戻ったら、未定義になっている…

即時関数

即時関数とは、定義したらすぐに実行される関数である。*1用途を示す。 コードを全てローカルスコープに閉じ込め、グローバルスコープに変数が漏れないようにするため 定義方法(構文)は2つある。JSLintは前者を推奨しているらしい。 なお、即時関数の戻り…

オブジェクトのプロパティの追加

var obj = {one:1}; alert(obj.one); obj.two = 2; alert(obj.two); obj["three"] = 3; alert(obj.three); for(var i in obj){ alert(i + ";" + obj[i]); }

カプセル化。関数外から関数内の変数にアクセスする。

JavaScriptでカプセル化。 var createBeans = function(arg){ var obj = arg; return { get:function(){return obj;}, set:function(arg){ obj = arg} }; }; var javascriptBeans = createBeans(0); //クロージャを利用して関数内の変数objに1を設定する jav…

スマートフォン用jQuery plugin 「jQTouch」

モバイル端末向けWebアプリ開発用のjQueryプラグイン「jQTouch」というものがあることを知った。 今度使ってみよう。下記、参照サイト。 jQTouchを使ったWebアプリ開発 jQueryについては、下記参照。 40分で覚える!jQuery速習講座 はじめてのjQuery

第一級オブジェクトとは

以下、Wikipediaによる。 第一級オブジェクト(ファーストクラスオブジェクト、first-class object)は、あるプログラミング言語において、たとえば生成、代入、演算、(引数・戻り値としての)受け渡しといったその言語における基本的な操作を制限なしに使…

名前付き関数式と無名関数

名前付き関数式 var func = function name(){ ・・・・・ }; nameが関数名である。 無名関数 var func = function(){ ・・・・・ }: 無名関数にしても、定義に変化はないが、関数オブジェクトのnameプロパティ(上記例の場合、func.name)が空文字列になる。 n…

JavaScriptでは、スコープは関数スコープのみである

Javaと異なり、JavaScriptでは波括弧({})を使用したローカルスコープは存在しない。あるのは、関数スコープだけである。例えば、ifの条件部あるいはforやwhileのループ内部でvarを使って変数を定義しても、その変数はそれらの内部でローカルな変数にはなら…

オブジェクトが配列かどうかを検査する

<script type="text/javascript"> //配列かどうかを調べるための関数の定義 if(typeof Array.isArray === "undefined"){ Array.isArray = function(arg) { return Object.prototype.toString.call(arg) === "[object Array]"; }; } ary = [0,1,2]; alert(ary); //trueと表示される alert(Arr</script>…

配列リテラル記法以外は使わない方が安全らしい

配列のコンストラクタを使用した場合、引数に渡す整数値は作成される配列の長さを表す。 例えば、下記コードは長さ4の配列を作成する。array[0]はundefined。 var array = new Array(4);

2種類のメニュー

Androidで利用できるメニューには、下記2つがある。 オプションメニュー 端末の[MENU]ボタンを押すことで表示されるメニューのこと。 onCreateOptionsMenuメソッドをオーバーライドして作成する。 コンテキストメニュー 要素を一定時間押し続けることで表示…

AndroidのLinuxカーネル部分の改変

Linuxカーネル部分と、そのライブラリはLinuxに基づくため、GNU GPLで保護されている。 GPLの規約では、改変を行った場合はソースコードを開示しなくてはならない。

Androidのライセンス

AndroidはApache Licence 2.0により公開されている。 開発するアプリケーションはソースコード公開の義務のないApache License 2.0を適用できる。 カーネル部分とそのライブラリ、WebKit以外は、Apache Licence 2.0とBSD Licenceに準じるので、改変が可能。

Androidアプリケーションとプロセス

Androidアプリケーションは、個別のプロセスで実行され、プロセスごとに専用の仮想マシンが割り当てられる。

Surface managerはアプリケーションフレームワークではなく、ライブラリ

Surface Managerは、複数アプリケーションの2D/3Dグラフィックスの統合を可能にするもので、ライブラリの1つ。アプリケーションフレームワークの代表的な機能は下記のとおり。 Activity Manager Content Providers View System Resource Manager Package Man…

JavaScriptベンチマークテスト

「SunSpider」という有名なベンチマークテストがある。 知らなかった。

Dalvik仮想マシン

Wikipediaには、Dalvik仮想マシンについて下記の説明がある。 ダン・ボーンスタイン(英語)およびGoogle社のエンジニアがAndroidプラットフォームのために設計・開発した、レジスタベースの仮想マシンである。 JVMが「スタックベース」であるのに対し、Dalv…

変数はスコープのどこで宣言したとしても、先頭で宣言した(宣言済み)とみなされる

JavaScriptでは、ある変数はそれが同じスコープ(同じ関数)の中にある限り、たとえvar宣言より前にその変数が使われていたとしても、その変数は宣言済みとみなされる。 変数が宣言済みということは、変数が宣言され、undefinedで初期化されているということ…