Firefox web browser - Faster, more secure & customizable Land Ho, Fast JavaScript! ≫ Mystery Bail TheaterがFirefox 4におけるJavaScriptの高速化について簡単にまとめている。Firefox 4ではJavaScriptの高速化がひとつの主力の取り組みになっており、すでに相当の高速化が実現されている。 Firefox JavaScriptエンジン2基、Chromeの性能に迫る Firefox JavaScript技術まとめ - Spider/Trace/Jaegar/Nanojit/Nitro ニトロでブースト - Firefox、新しい高速化技術を導入 Land Ho, Fast JavaScript!の説明によれば、こうした高速化が施されたFirefoxはFirefox
http://blog.livedoor.jp/dankogai/archives/51512419.html JavaScript で呼び出しの () が煩わしいなら、以下のように書けるのではないか。 #!/usr/bin/js var fl = { p : 0, valueOf : function(){ return this.p = !this.p; }, toString : valueOf }; print(fl); print(fl); print(fl); print(fl);
2010年09月03日05:30 カテゴリLightweight LanguagesMath Algorithm - 0と1を次々と返す簡単なお仕事 ごもっとも。 0と1を次々返す方法 - a2c.get.diary TrueだったらFalseで、FalseだったらTrueにしたい。 なんかそんなことそこかしこで必要で、その為の便利なものが あるのかなぁと思ったんだけど無いぽい Closure 本来は一番おすすめなのだが… JavaScript ()が煩わしいが、perlやrubyよりは自然。 #!/usr/bin/js var flipflop = function(p){ p = !p; return function(){ return p = !p; }; }; var fl = flipflop(); console.log(fl()); console.log(fl()); c
function f ( ) { do_something(); do_another(); do_one_more(); } このプログラムでは順番に3つの関数を呼び出していますが、各関数呼び出しの間でいったんスレッドの実行権を他のJavaScriptコードに渡したいとします。これは次のように、各関数呼び出しをそれぞれ別の関数に分けて、間にsetTimeoutを挿むようにプログラムを書き換えることで実現できます。 function f ( ) { do_something(); setTimeout(f1, 1); // 1ミリ秒後にf1を呼び出す } function f1 ( ) { do_another(); setTimeout(f2, 1); } function f2 ( ) { do_one_more(); } こうして書き換えた関数fを、 f(); f(); のようにし
あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。
wtfjsに下のような面白いものが登録されました。 alert.call.call.call.call.call.apply(function (a) {return a}, [1,2]) // 2 確かに、どうしてこうなるのかは直ぐには分かりません。一つ一つゆっくりと確認してみましょう。 関数コールのobj.func(arg,...)という形式は、obj.func部分の評価結果は参照型(reference type)となりますが、obj部分の評価結果は値になります。(詳しくは関連エントリ[2]をご覧ください) なので、 func1.func2.func3(arg,...); という形式は、func1.func2部分を評価して結果を変数に代入しても結果は変わりません。 つまり、下記のようにしても動作は同じです。 var fn = func1.func2; fn.func3(arg,..);
はじめに JavaScriptの初心者にとってundefinedというのはちょっと混乱を招くものらしい。nullとの違いや使い分けがよく分からなかったり、数値やブール値との比較が不自然だったりするのが原因と思われる。ここでは、そのようなundefinedのいろいろについてまとめてみた。 ECMA262規格では undefinedとnullに関して、ECMA262規格では最初に以下のような記述がある。 4.3.9 undefined value primitive value used when a variable has not been assigned a value. 4.3.11 null value primitive value that represents the intentional absence of any object value. undefinedは変数に
2010年08月03日21:30 カテゴリ書評/画評/品評iTech Objective-C不要! - 書評 - iPhoneアプリケーション開発ガイド オライリー矢野様より献本御礼。 iPhoneアプリケーション開発ガイド Jonathan Stark / 増井俊之監 / 牧野聡訳 [原著:Building iPhone Apps with HTML, CSS, and JavaScript] これだ! こういう本が、欲しかった! iPhone向けに何か作りたい。でもObjective-Cは敷居が高い。App Storeで大もうけしたいわけじゃない。でもiPhone向けのWebサイトを作るだけじゃちょっと物足りない。 そんな私のような人のためにうってつけの一冊が、これだ。 本書「iPhoneアプリケーション開発ガイド」という題名は、ちょっとミスリーディングだ。原著の"Building i
2010年08月17日12:00 カテゴリLightweight Languages Ajax - IE8にもJSON入ってます。使えるとは限らないけど はい、私の勘違いでした。 はてなブックマーク - Twitter URL Log JSONはIE8にも入ってるような IE8にも確かに native JSON が入ってます。 Native JSON in IE8 - IEBlog - Site Home - MSDN Blogs ですが、使えるとは限らないのです。 Compatibility mode (別名Quirks mode) では、JSONオブジェクトは無効になります。これ、豆知識な。心に血豆が出来たけど。 以下、デモです。 var json = {string:'json',number:2,object:{array:[true,false,null]}}; var str
2010年07月02日05:30 カテゴリLightweight LanguagesNews news - javascript - just do jsdo.it! 今更ながら試してみたけど… これはすごい。 一言でいうと、Webアプリケーションをその場で作れるWebアプリケーション。 例えば、こんなの。 Simple JS Runner - jsdo.it - share JavaScript, HTML5 and CSS 全てサイト内で書けました。 単にその場で書けるだけではなくって、こうして作品をblogに張り込むことも出来るし、人のコードをforkすることもできるし、至れり尽くせり。認証がOpenIDやOAuthで、アカウントをわざわざ作成しなくてもいいところも素晴らしい。ここまで敷居を下げられたら、 Just do it.するしかない。 詳しくはこちら。 help - jsdo
2010年04月28日22:00 カテゴリLightweight Languages javascript - Array.prototype.slice.apply(arguments) // 引数一発配列化 これなのですが… 細かいJavaScriptの仕様や習慣やテク集 - 三等兵 var func = function() { var leng = arguments.length; for(var i = 0, arr = []; i < leng; i++){ arr[i] = arguments[i] * 10; } alert(arr); }; こう書けます。 var func = function() { var args = Array.prototype.slice.apply(arguments); var arr = args.map(function(n){ r
2006年10月18日09:20 カテゴリLightweight Languages javascript - プロトタイプ的継承 がーん。この感動はY combinatorを見たときに匹敵する。 Prototypal Inheritance function object(o) { function F() {} F.prototype = o; return new F(); } なぜこれがそれほど感動的かというと.... これを使えば、ArrayやObjectといったBuilt-Inからも難なく継承できるから。 継承のやり方としてはPrivate Members in JavaScriptが圧倒的に有名で、日本でもbrazilさんによる邦訳、Collection & Copy - JavaScriptにおける古典的継承もよく知られていると思うけど、この三行を目の前にしては霞む。でもp
JavaScript における new 演算子の動作は大まかにいって以下のとおりである。(new F() とした場合。) 新しいオブジェクトを作る。 1 で作ったオブジェクトの [[Prototype]] 内部プロパティ (__proto__ プロパティ) に F.prototype の値を設定する。 F.prototype の値がオブジェクトでないのなら代わりに Object.prototype の値を設定する。 F を呼び出す。このとき this の値は 1 で作ったオブジェクトとし、引数には new 演算子とともに使われた引数をそのまま用いる。 3 の返り値がオブジェクトならそれを返す。そうでなければ 1 で作ったオブジェクトを返す。 ここで「オブジェクトである」というのはプリミティブ値 (文字列、数値、真偽値、undefined 、null) ではないということだ。new Stri
ブロック要素をYahoo!Pipesばりに結んで視覚的に関連付けられる「jsPlumb」 2010年04月20日- jsPlumb demo ブロック要素をYahoo!Pipesばりに結んで視覚的に関連付けられる「jsPlumb」というものがあるみたいです。 次のように、要素間が紐のようなもので繋がっているような表現が出来、ドラッグ&ドロップによる要素の移動が可能です。 AとBは関連があるから繋いでおくというようなシーンで使えそうですね。 要素はドラッグ&ドロップで移動が可能。 1から実装しようと思うと大変ですが、ライブラリによって複雑な処理も簡単に出来ますね。 関連エントリ とても綺麗なグラフ等を描けるフレッシュなJavaScriptライブラリ色々 1つのリンクで複数サイトにリンクできる便利JavaScriptライブラリ「Pluralink」 同一ページ内でポップアップウィンドウを開くJ
前述のとおり canvas 要素は Web ページ内に空の画像領域を確保します。感覚としては画像ファイルを指定しない img 要素のようなもので、Web ページ上での扱いもほぼ同じです。画像がないので src 属性がなく、代わりに width, height 属性で描画領域のサイズを明示しなければなりません。また、JavaScript で描画対象の canvas を特定するための id 要素を指定するのが普通です。例えば、150x150 ピクセルの描画領域を確保するには、以下のように記述します。 <canvas id="example_canvas" width="150" height="150"></canvas> 閉じタグを忘れると以降の内容が表示されなくなるので注意してください。詳細は後述しますが、canvas 要素内のテキストはブラウザが canvas をサポートしていないときの
tech.kayac.com、ささやかにリニューアルしました! tech.kayac.comをご覧の皆さん、はじめまして。意匠部ME課のfuchigamiといいます。 どうして技術部ブログに意匠部の野郎が?って感じですが、 技術部ブログのリニューアル記念ということで、ちゃっかりcanvasについて記事を書こうと思います。 最初なので、、、 簡単にぼくの属性を説明すると、html5とか好き、CSS3とか好き、canvasとか興味ある、非モテ、javascriptはjQueryがなんとなくわかる程度、非リア充。こんな感じです。 今回のリニューアルではコーディング全般を担当しました。 特に、プログラミングに関してはド素人だ!ということを強調しておきます。 そんなぼくが、canvasを使ってキラキラした背景を作ってみました 「リニューアルするからには新しいことがやりたいよね。だったらhtml5とc
Safari拡張をいくつか作って大体感覚は掴めたので、ざっくりと拡張の作成手順を解説してみます。 なお、Windows版で作業していますが、Macでもほとんど同じだと思います。 Safari拡張とは 最初に、Safari拡張とはなにか、について。Safari拡張はHTML/CSS/JavaScriptをベースに、ブラウザ側が用意したAPIを使ってブラウザを便利にするモジュールです。通常、JavaScriptだけではクロスドメインの問題など、実現できることに制限がありますが、その点を拡張用に用意されたAPIで補います。そのため、APIが用意されていない部分については対応できないという制限があります。しかし、開発のし易さ、ウェブとの親和性の高さからアイディア次第で便利で強力なツールとなるのがSafari拡張・Chrome拡張です。 なお、現状のAPIは暫定的なもので、ここで紹介するのもあくまで
「HTML5は優先順位を間違った。もういちどセキュリティの設計からやり直すべきだ」と語るJavaScript大家のDouglas Crockford氏 「HTML5の最大の問題は、優先順位を間違ったことだ。機能について議論する前に、セキュリティの扱いについて検討すべきだった」こう語るのは、JSONの発明者として知られ、Yahoo!のシニアJavaScriptアーキテクトでもあるDouglas Crockford氏。5月4日に行われたオライリーのWeb2.0 Expo 2010でのインタビューでのことです。 「もうそれを議論するには遅すぎるという人もいるが、そうは思わない。正しいことをするのに遅すぎることはないのだから」(Crockford氏) Crockford氏はHTML5は機能が重複しすぎていることも指摘しています。「Local StorageとLocal Databaseの両方が本当
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く