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

Date() と new Date() は等価ではない

概要 Native Object のコンストラクタの中には関数呼び出しとコンストラクタ呼び出しが同じ動作になるものがあります。例えば、Array() は new Array() と等価です。 new Array(1, 2, 3); // [1, 2, 3] Array(1, 2, 3); // [1, 2, 3] 対して、Date() は new …

MDN ではfor文の第一要素を初期化式(initial-expression)と説明している

概要 for文の第一要素で変数宣言するコードは次のようになります。 for (var i = 0; i < 10; i++) { alert(i); } この時、var i = 0 が「式」であるかのように誤解されることがあるようです。 ECMAScript 3 では ECMAScript 3 では ExpressionNoIn と Variab…

ECMAScript 5 規定の undefined は書き換え不可能

概要 次のようなコードをよく見ます。 undefined = 1; // 1 (function () { var undefined; // 同名のローカル変数を定義 alert(undefined); // undefined })(); ところが、ECMAScript 5.1 規定の undefined は書き換え不可能([[Writable]]: false)です。 15…

DOM Events の「バブルアップ」の語源は MDN

バブルアップの語源 DOM L2 Events には親要素にイベントが伝播していくイベントバブル動作(Event bubbling)があり、これを「バブルアップ」と解説されているサイトをたまに見ますが、語源はMDNにあったようです。 (英語版には "bubble up" とあり、翻訳によ…

Google Chrome のページ翻訳機能は [日本語のページ] を英語と判定する事がある

概要 Google Chrome 12 日本語版は仕様書リンク のページを [英語のページ] と判定して日本語に翻訳しようとする。 再現ソース HTMLソース。 <html lang="ja"> <head> <meta charset="UTF-8" /> <title>仕様書リンク</title> .htaccess Header set Content-Language jaHTTPレスポンスヘッダ。 Content-Language: ja 考察(</meta></head></html>…

IE8- の Node#cloneNode はイベントまでコピーする

DOM2 規定の cloneNode() DOM Level 2 Core で規定されている Node#cloneNode は「すべての属性と値をコピーします」が、参照は新しく形成されます。 つまり、<p onclick="alert('click');"> のようにHTMLに埋め込んであるイベントはコピーしますが、addEventListener 等で形成されたイベ</p>…