MIME memo
Base64, Quoted-printable, JIS(ISO-2022-JP), RFC2045
JavaScript で Migemo っぽいもの作るのメモ?
2/3 くらい作って挫折しそう。
半角英数字記号類を全角英数字記号類に変換
function h2z(han) { // 半角英数字記号類を全角英数字記号類に変換 // ASCII の 文字類 => 全角のそれら ( SP が含まれていないことに注意 ) // [\u0021-\u007e] => [\uff01-\uff5e] return han.replace(/[\u0021-\u007e]/g, function(c) { return String.fromCharCode(c.charCodeAt(0) + 0xff01 - 0x0021); }); }
とりあえず書いてみたのですが、これでいいのかな。教えてえらい人。
r2z はなんかおかしいと思ったので、 h2z に直してみた。roma も han にしてみた。
switch と初期化
http://d.hatena.ne.jp/Isoparametric/20070328/1175093521
初期化はダメなんですね。知らなかった。
switch 文の括弧は break; で抜けたりするあたりからして、ブロックとは思えないので変数の宣言さえしようと思わなかった。宣言したいときはブロック書いてその中で、ですね。http://d.hatena.ne.jp/noya/20070327#1175011966の方が書いてたのと大体同じですね。 fall-through な場合は、switch のすぐ下で宣言ですね*1。 case の後の処理が多いなら関数に……
C に戻るまでもなく現在進行形で C ってのがすごく悲しいですね。
*1:ここで初期化ができないってのが驚き。いや、使うことないですけど。
JavaScript メモ
- プロパティも配列も連想配列
- 関数がオブジェクト?
- new したら prototype を自動で参照してくれる?
// 以下、コードもどきのメモ // 連想配列の書き方 var hash = {a:'afx', 'b':'bcc'}; // => じゃない, key の " ' は省略できる? hash['c'] = 'clnch'; // プロパティも配列も連想配列 var arr = new Array; // [] でも同じ? arr[0] = 'a'; // ↓と同じ ( 0 に .ToString() がかかる? ) arr['0'] = 'a'; // ↑と同じ arr['a'] = 'afx'; // ↓と同じ arr.a = 'afx'; // ↑と同じ // 関数がオブジェクト? var Klass = function() {} // ↓と同じ?(スコープとかが違いそう。 new はこれでもできるぽい) function Klass() {} // ↑と同じ? // new したら prototype を自動で参照してくれる? Klass.prototype = {a:'afx', b:function(){return '飛べない豚はなんとかかんとか'}}; // これも連想配列 Klass.a // undefined (この状態じゃ prototype は見てくれない ) var obj = new Klass; obj.a // 'afx' obj.b() // '飛べない豚はなんとかかんとか' // で、どうして prototype があるのか理解していなかったり。