ema log

«前日: 2007年11月20日(火) 最新 翌日: 2007年11月22日(木)»

このページは検索エンジンのクローラ用のページです。最近のエントリ一覧などノイズになりやすい項目を除去しています。


2007年11月21日 (水) JavaScript 第五版読書会に行ってきた この日を編集

_ JavaScript 第五版読書会#1に行ってきた

勉強会で喋らせてもらった後に、Kanasan さん主催の「JavaScript 第五版読書会#1」。

masayashi くんを誘って、会場に行くと kur がいてびっくらこいた。

JavaScript 初心者対象と言うことだったのですが、 勉強会などに参加しようという方々は、やはりというか、ほかの言語経験などもある方が多く 言語使用のディープな部分に話が行くことが多かったように思います。ギークスパイラル。

僕としては、非常に面白くて大歓迎だったのですが、不満があった方がおられても不思議じゃないかなぁと感じました。 気にしすぎなのでしょうか。

Date などは避けたい識別子とされているけど、使わない方が良いのでは?(p.20)

Firebug にて検証

>>> new Date(2006,11,11);
Mon Dec 11 2006 00:00:00 GMT+0900
>>> Date = 1
1
>>> new Date(2006,11,12) // => Error
Date is not a constructor

これは嬉しくないなぁ。

暗黙の型変換はややこしい

あくまでも一例

"21"+"2"; // => 212
"21"*"2"; // => 42

文字列周りは鬼門が潜んでいそう

Array.new( 10, "*" ) がない

配列を初期化して生成したい時に、良いメソッド/コンストラクタがない

(new Array(10+1)).join("*").split(""); // kanasan++

これは良いw

暗黙の変換順序(p.34, p.41)

  1. valueOf
  2. toString -> Number
  3. Error?

( { valueOf: function() { return 3; } } ) + "4" //=> 34
( { valueOf: function() { return 3; } } ) + 4 //=> 7
( { valueOf: function() { return 3; }, toString: function() {return "1"; } } ) + "4" //=> 34

var 省略するとグローバル(p.51)

明示的に宣言しないと全部グローバルになるそうです。

this, window, self

ブラウザ上では、フレームが絡まなければ、トップレベルで

       this   === window      // => true
window.window === window      // => true
       this   ===        self // => true
window.this   === window.self // => true

self の存在意義がわからない。

delete の謎

delete が true を返すのは、プロパティの削除に成功したか、プロパティが存在しない時?

a = [1,2]; delete a.concat // => true
a = [1,2]; delete a.concat; a.concat([3,4]) // => [1,2,3,4]
a = [1,2]; delete a.concat; a.concat === undefined // => false
a = [1,2]; a.test = function() { return 1; }; delete a.test // => true
a = [1,2]; a.test = function() { return 1; }; delete a.test; a.test === undefined // => true

組み込み関数はプロパティじゃないから true が返ってくるのかな? @ Firebug

これ、バグじゃないのかなぁ?

Kanasan.JS #2 は 12/08

LiveCoding が 12/01。これはいけない。

Kanasan.JS #2 は 12/08。これは参加途中抜け予定。

Ruby 関西勉強会が 12/15。これは絶対行く。学位授与前日だけど行く。

バーミヤン

バーミヤンで higeorange さんと shin1x1 さんと Tagawa さんと少し話す。どうにも、どういう風に話して良いのか分からない部分がある。

本日のツッコミ(全4件) [ツッコミを入れる]
ujihisa (2007年11月22日 (木) 02:46)

どうもrubyistのujihisaです。<br>本日はお越しいただきどうもありがとうございました!

ema (2007年11月22日 (木) 09:24)

こちらこそ、開催していただいてありがとうございました!<br>Live Coding にはいけないのですが、Kanasan.JS#2、Ruby 勉強会も楽しみです。

kanasan (2007年11月26日 (月) 01:22)

kanasanです。<br>読書会お疲れさまでした。<br>初期値を指定する配列の作成方法は制限がありますのでご注意下さい。<br>この点について、補足するEntryを書いていますので、よろしければご参照下さい。<br>www.kanasansoft.com/weblab/2007/11/post_14.html<br>それでは。

ema (2007年11月26日 (月) 19:42)

やっぱり,<br><br>Array.prototype.fill = function( value ) {<br> for( var i=0; i < this.length; i++ ) { this[i] = value; }<br> return this;<br>};<br><br>みたいなのを定義するしかないってことなんですね….帰ってからエントリに書きます.<br><br>Array.new = function( size, value ) {<br> var tmp = new Array( size );<br> for( var i=0; i < tmp.length; i++ ) { tmp[i] = value; }<br> return tmp;<br>};<br><br>は evil でしょうかw.これなんて Ruby.

本日のTrackBacks(全2件) []
_ Kanasansoft Web Lab.:JavaScript第5版読書会#1参加者の参加報告の一覧 (2007年11月26日 (月) 00:30)

新規投稿も落ち着いてきたようなので、一覧にまとめます。(2007/11/25:追...

_ Kanasansoft Web Lab.:配列の初期値を指定する方法の処理速度検証 (2007年12月01日 (土) 00:07)

JavaScript第5版読書会#1で披露した「配列の初期値を指定する方法」のそ...


«前日: 2007年11月20日(火) 最新 翌日: 2007年11月22日(木)»