僕も onclick 属性がダメだと思っていた時代もありました。でも、今は時々使うなあ。 JavaScript 入門の記事を書くときに onclick 属性がダメだとしたら、いろいろ本質的でないことを説明しなきゃいけない。現状では onclick 属性が、もっとも簡単に HTML にイベントをマッピングできる方法だから、そんなに目くじらたてなくてもいいんじゃないかなあ? たとえば 以下は、クリックさ...
for 文を setTimeout に変換する - IT戦記の件。おもしろい。自分だったらこう書くかなと思いました。
先日の RHG 読書会で、牧さんがやっているという http://sourceforge.net/projects/jsthread/ の紹介があった。 JavaScript でプリエンプティブなスレッドをライブラリレベルで実装した、という話。 JavaScript というのは、ユーザレベルからはスレッドが一本しかなくて、処理の切り替えというのができない。だから、タイムアウト呼出や処理の終了のイベントを待って終了処理をする、ってなこ...
『 和訳、出た。//2007-04-20追記:ブクマ時はv1.3.1だったらしい/現在:document.title==prototype.jsv1.5.0の使い方;jQuery('h1').text()==prototype.jsの開発者向けメモ;/→はてブタイトルを「prototype.jsv1.5.0_rc2」(b:id:komusubi123/20070212)から変更 』
Webプログラミングは,もはやJavaScriptを抜きには語れません。Webブラウザ上で動作する簡単なプログラミング言語として,あるいはサーバーサイドと連携するAjaxの一部として,またはオブジェクト指向スクリプト言語として…JavaScriptほど幅広い層に使われている言語はないでしょう。ここでは言語としてのJavaScriptに注目し,Part1ではJavaScriptを学習するうえで基本的な文法を,Part...
良質の記事だけに全訳したかったのだけど、時間もないので紹介と抄録。 ul.digital-web { list-style-image: url(http://www.digital-web.com/favicon.ico) } Digital Web Magazine - Seven JavaScript Techniques You Should Be Using Today サンプルコードは、適宜書き換えてあります。
「いやなブログ - JavaScript でソートアルゴリズムを可視化」より。何も考えずに再帰処理のクイックソートの様子を逐次描画しようとするとこうなります。 function quickSort(data, begin, end, log) { if (begin >= end) return data; var pivotPos = begin; var pivot = data[pivotPos]; for (var i = begin + 1; i < end; i++) { if (data[i] < pivot) { var temp = data[i]; data[i] = data[pivotPos + 1]; data[pivotPos + 1] = data[pivotPos]; data[pivotPos] = t...
このスコープの「レキシカルさ加減」が、実は言語によって結構違うので、この機会にちょっとつっこんでおくことにする。 ハタさんのブログ : javascriptを初めて学ぶ人についてのおさらい。その1変数で宣言したものには、参照先が決まっています。その参照の範囲はスコープとも呼びます。 続きを読む
『 コマンドラインから実行するJavaScript文法チェックツール。SpiderMonkey相当の構文解析エンジンを内蔵。 』
for 文で 100 項目とか 1000 項目とかあるテストケースを処理するとブラウザが固まる。 こんなダイアログが表示されます。 ということで for 文を setTimeout や setInterval に変換する事で定期的にブラウザに処理を戻すことができる。 // ここでは console.log のところでログを取ってますが // 通常は処理が入ります。 for (var i = 0; i < 3; i ++) { console.log('a' + i); } /* * 結果 * a0 * a1 * a2 */ これ...
いうまでもない。昨今、GoogleやYahooをはじめとした多くの企業が積極的にJavaScriptを採用したリッチなユーザー・インターフェイスを公開し、これが「Ajax(Asynchronous JavaScript And Xml)」という名前とともに急速に注目を浴びたことが、その理由である(Ajaxについては拙稿「枯れた新しいUI革命「Ajax」をASP.NETで活用する」を参照いただきたい)。加えて、マイクロソフトは今年1月に...
Sorting Algorithmsのデモと言えば、Java Appletによる有名なものがあります。 Sorting Algorithms Demo これの一部をJavaScriptでやってみようという試みです。
『 iPhone3GのSafariでDatabaseオブジェクトを利用したプログラミングのチュートリアル。 』
(ぐだぐだと執筆中、現時点で読んでも意味不明だと思います。) 自分の知り合いに「まったくの未経験だけどプログラミングをやってみたい!」という人がいるので、プログラミングを始める前に必要な知識や心構えや準備などを書いておこうと思います。もちろん、最初に使う言語は JavaScript です。 この文章は、プログラミングまったくの未経験者が読んで分かる文章を目...
『 Web上で編集・実行できるJavaScriptエディタ。 』
とある理由で僕主催の初心者向けのJavaScript勉強会 を14日行いました。とある理由はforestkさんのエントリーを参照ください(UK 主催の初心者向け Javascript 勉強会が生まれた経緯) 会場は株式会社ノッキングオン様にご提供いただきました。借りたい人ははてなキーワードのノッキングオンの会議室使いたい!を利用するといいと思います。東麻布でプロジェクター & ネット環境あり...
JavaScriptによる全文検索エンジンの最初のバージョンはAjaxではなく、Sjaxであった。その為、サーバへのリクエストが発生する毎にブラウザが固まってしまい、応答性が悪かった。なぜ、Sjaxで記述したかというと、連続してサーバへリクエストを送り、しかも、サーバからのレスポンスに応じてリクエストを変更するようなAjaxプログラミングが面倒だった為である。このようなSjax...
IEとFirefoxではwindow.onerrorを設定するとJavaScript全体のエラーを補足できます。さらに返値をtrueにすると標準のエラーダイアログを抑制できます。簡単なサンプルはこんな感じ。 window.onerror = function(mes,file,num){ alert([ "file : " + file, "line : " + num, "message : " + mes ].join("\n")); return true; } あまり細かい情報を取得できるわけではないので、例外処理に使ったりはできないのですが、エラーメッ...
JSON文字列をevalして値を取りたいときに挙動が妙ではまった、という話を聞いたので、Firefox1.5上のFireBugのコンソールで何パターンか試してみた。 {"key":"value"}というJSONデータが文字列で渡ってきて、それをevalしてJavaScriptの値として使いたい、という想定。 間違ったJSON文字列をevalした場合 >>> jsonstr = "{key:\"value\"}" "{key:"value"}" >>> var o...
『 と、とりあえずソースを見てくれ。俺が言えるのはそこまでだ。。。/SeeAlso:http://d.hatena.ne.jp/yukoba/20071108/p1 』
JavaScript には基本的にブロックスコープというものが存在しない。どうしてもブロックスコープを扱いたいときは function 式を使ったりする。 var a = 10; { var a = 20; print(a); // 20 } print(a); // 20 var a = 10; (function () { var a = 20; print(a); // 20 })(); print(a); // 10 だがやはりブロックスコープがあったほうが便利ということで JavaScript 1.7 では let 式、let...