下記のように不思議な現象が起きます。つけると数値型ではなく数値オブジェクト型になるためです。つけると数値をラップしたオブジェクトになるため、数値とは異なるものになるからです。話が難しくなりましたね。使わないようにしましょう。(勉強してわかるようになろうね!)あ、下記も同じことが言えるので、使用禁止です。思った方がいるかもしれません。実は、内部で暗黙的にオブジェクトに変換しているんですね。Number(1)).toString();として処理されます。Data.setTime()で日付型に戻すと良いでしょう。Boolean値の変換Booleanはまとめたほうがわかりやすいかなと思い最後まとめました。関係にあり、それぞれ相互に変換されます。数値は0以外("以下"ではない!!)はtrue、0はfalseに変換されます。空文字(長さが0の文字列)以外は、trueになります。Boolean値を文字列に変換すると、"true","false"になります。undefinedこれらはBoolean型に変換すると、falseになります。変数に値が割り当てられたかもしくはnullの場合は、処理しない・・・などどいうシーンでよく使用しますね。明示的に示すことで、意図を明確にできる。&#39;o&#39;型変換はおしまい次は、JavaScriptのいろいろな実装パターンについて書いていこうかと思います。vistasみなさん!XPages開発していますか!?前回の予告でJavaScriptのパターンをいくつか紹介します、と書いていましたがJavaScriptをちょっとおやすみして、XPagesの小ネタをはさもうと思います。renderedとloadedの違い配置したコントロールを表示/非表示するときに、renderedのプロパティを使用するかと思います。renderedに聞き覚えのない方は、下記のチェックボックスと言えばわかるでしょうか?このチェックボックスをoffにすると、「すべてのプロパティ」でrenderedの値が"false"になっているのが確認できると思います。一方で同じ「すべてのプロパティ」にはloadedというものが有り、これを"false"に設定すると同じように表示されなくなります。これらの違いはどこにあるのでしょうか?実は、画面にあるコントロールは、renderedの値にかかわらず、サーバーのメモリに展開されますが、loadedを"false"とするとメモリ上にも展開されなくなります。実行時にコントロールが存在しない扱いになるわけです。メモリ上に展開しない分だけサーバーの負荷は減るわけで、パフォーマンスにも影響します。loadedだけを使えばいいのかというとそういうわけではありません。メモリ上に展開しないということは、ボタンなどのイベント処理でアクセス出来ない-再表示させたりできなくなることになります。loadedの式は"動的な計算"は使えず"ページの読み込み時に計算"しか選択できないようになっています。まとめ画面内のボタン等で表示を切り替えたい場合は、renderedで、ページの読み込み時に表示/非表示が決定して、ページを離れるまで変更ない場合は、loadedで設定しましょう。次はJavaScriptに戻ります次はちょっと組立を変えて、JavaScriptのオブジェクト・リテラルについてお話します。今回は前回からの引き続きで、JavaScriptについて書いていきます。JavaScript禁忌技(続き)やるなよ、絶対にやるなよ。parseInt()での数値変換は禁止parseInt()は、文字列を数値に変換する便利な関数ですが、この関数の使用を十分理解していない場合、バグを生む原因にもなります。IE8以降か、IE9以降のIE8モードで下記を実行してみてください。alert(parseInt(&#39;07&#39;));alert(parseInt(&#39;08&#39;));"07"は"7"と表示されましたが、"08"は"0"が表示されました。おかしいですね?なんででしょう。実は、parseIntには第2引数を渡すことができて、これは変換する進数の値です。渡した文字列を16進数として扱いたい場合は、"16"を渡します。第2引数が渡されない場合は、文字列の内容によって進数が自動的に決定されるのですが、"0"で始まるものは8進数として処理しようとします。よって、"08"は8進数として変換しようとしてしまいます。"08"は8進数としては不正な文字列のため、(エラーになればいいのですが)0を返してしまいます。最近のブラウザでは、"0x"で始まれば16進数、そうでない場合は10進数として処理するように仕様が変更されているので、この問題はおきません。XPagesのSSJSでも、同様です。環境の違いを意識してコーディングするよりも、parseIntを禁止して別な手段を使ったほうが無難でしょう。代わりに下記を使用します。8parseIntと上記の代替例では、異なる点があります。parseIntは数値で始まっていれば、数値以外の文字があっても数値に変換します。NaNまだまだつづくよ今回は短いですが、このへんで。次回もJavaScript。型変換についてもう少し説明します。vistasみなさん!XPages開発していますか!?今回は、JavaScriptの継承として利用される、メソッド拝借と、その際に必要となるクロージャについて説明します。メソッド拝借メソッド拝借とは、コンストラクタ関数やオブジェクトを定義するときや、既存オブジェクトの処理のために、他のオブジェクトの関数を使ってしまおう、ということです。あるオブジェクトのメンバーをまるまる継承する場合には、以前に説明したprototypeやミックインを行えばいいのですが、1,2個の関数だけを使いたい、または、一時的に関数を利用したい場合には、すべての継承するのは少々大げさですよね。Javascriptでの関数は、オブジェクトの依存度が低く、変数のように持ち運べる手軽さが有ります。メソッド拝借ではこれを利用します。オブジェクト定義によるメソッド拝借まずは、オブジェクト定義のときに拝借するパターンを見てみましょう。