タグ

Javascriptに関するhatz48のブックマーク (194)

  • JSONのエスケープをどこまでやるか問題 - 葉っぱ日記

    Ajaxなアプリケーションにおいて、サーバからJSONを返す場合に、JSON自体はvalidであるにも関わらず、(IEの都合で)エスケープが不足していて脆弱性につながってる場合があるので、書いておきます。 発生するかもしれない脆弱性 JSONのエスケープが不足している場合に発生する可能性のある脆弱性は以下の通りです。 JSON内に含まれる機密情報の漏えい XSS それぞれの詳細については後述します。 開発側でやるべきこと 文字列中のUnicode文字は "\uXXXX" な形式にエスケープするとともに、ASCIIな範囲であっても「/」「<」「>」「+」も同様にエスケープすることにより、前述の脆弱性を防ぐことができます。 Perlであれば、以下のような感じになります。JSON->ascii(1) に続けて、JSON文字列を正規表現で置換しているあたりがキモになります。 use utf8; u

    JSONのエスケープをどこまでやるか問題 - 葉っぱ日記
  • Pythonのselfはなぜ必要かをJavaScriptのthisで考える - なんたらノート第三期ベータ

    あなたがもしPythonを作る前のGuidoに憑依して - ネットリサーチ - livedoor ニュース が面白すぎた。2位と3位の すべてを式にする lambdaの構文を変える は、同じ願いを別の言い方でしてるような気がした。lambdaにifとforを入れたいをかなえるには、ifとforを式にするか、lambdaに文が入るようにするか、どちらか一方だし。 それはさておき、このエントリの題は、「Pythonにはselfが要る」というGuidoさんの主張について、具体例で理解することです。「こうだったらいいのにな」逆の視点、もしselfがないとどう困るのか、を考えましょう。 そこで、Pythonとは別の母親から産まれた双子、JavaScriptを例に、thisについて考えてみます。Pythonに対して、JavaScriptは「メソッド定義の第一引数に余分なアレがないこと」が特徴でしたね

    Pythonのselfはなぜ必要かをJavaScriptのthisで考える - なんたらノート第三期ベータ
  • スマホ用JavaScriptフレームワーク5つ+1を徹底研究(1/5) - @IT

    スマホ用JavaScriptフレームワーク5つ +1を徹底研究 jQuery Mobile、iUI、jQTouch、 Sencha Touch、Wink toolkit、PhoneGapとは アシアル株式会社 鴨田健次 2011/6/22 スマートフォン向けJavaScriptフレームワーク/ライブラリを使うと、スマートフォンアプリっぽい見た目のページデザイン、UI(ユーザーインターフェイス)パーツやページ遷移アニメーションを簡単に実装できます。多くは、おのおののフレームワークのルールにのっとったHTMLを書くことで、それらの機能を実現します。 稿では、jQuery Mobileを筆頭として、いくつか発表されているスマートフォンサイト向けJavaScriptフレームワークを紹介します。 ■ PCサイト向けJavaScriptフレームワークについて PCサイト向けJavaScriptフレー

  • http://hdemon.net/

    nice Chrome用Extensionとしてニコニコ動画の機能を拡張し、ローカルマイリストや、マイリス編集のGUIツールを提供します。

  • JavaScriptの”this”をめぐる冒険 |

    JavaScriptの"this"って難しいですよね。理解しないまま使ってると、思わぬところでグローバルオブジェクトを指していたり、そもそもvarでプライベートな変数にすべきところにもthisを使っていたり…。私もthisには散々悩まされてきたので、そろそろ完璧に理解しようと思い、以下の記事をまとめてみました。間違いを見つけたら指摘して頂けるとありがたいです。なお、文中の引用文章は読みやすさを考慮して適宜改行、強調を行っています。 thisとは何か。 まずは仕様書を見てみましょう。 ECMA-262 3rd 11.1.1 The this Keyword The this keyword evaluates to the this value of the execution context. ECMA-262 5th 11.1.1 The this Keyword  The this k

  • QUnitの基本的な使い方 - but hopeful

    [追記] 2013/9/1 三年前の記事が未だに読まれているようなので、一応書いておきますが、あれから色々変わってもっと良いものも出ています。 QUnit でも別に問題はないですが、今から QUnit を使うよりは http://visionmedia.github.io/mocha/:title=mocha] とかの方が個人的にはお勧めです。とにかく、今は色々あるのでもっと別の選択肢調べて見ることを個人的にはおすすめします。別に QUnit は使わないほうが良いとは言いません。 JavaScriptのテスティングフレームワークはいろいろありますが、自分は今主にQUnitを使っているので、少し使い方をまとめて見たいと思います。 [追記]今回作成したソースを上げました。ninja.js QUnit とは QUnitはもともと、jQueryをテストするために開発されたJavaScript Un

    QUnitの基本的な使い方 - but hopeful
  • applyとcallの使い方を丁寧に説明してみる - あと味

    JavaScriptに、applyとcallというメソッドが用意されていますが、自分なりにapplyとcallの丁寧に説明をしてみようと思ってこのエントリーを書くなどをしてみます。 applyとcallは非常に似たメソッドなので、まずはcallから説明します。 callメソッドとは? callメソッドは以下のように呼び出します。 methodA.call(thisArg, [, arg1 [, arg2, ...]]); methodAには任意の関数(メソッド)を指定します。 callの引数は第一引数にmethodAのthisとしたいオブジェクトを指定して、第二引数以降はmethodAに渡したい引数があれば、カンマ区切りでそれぞれ指定します。 callメソッドは、すべての関数が共通して持っているメソッドです。すべての関数はFunctionクラスのオブジェクトで、callはFunction.

    applyとcallの使い方を丁寧に説明してみる - あと味
  • javascript - にはクラスはない : 404 Blog Not Found

    2009年06月13日22:00 カテゴリLightweight Languages javascript - にはクラスはない かえってわかりにくくなっている感じをかつてさんざん実感したので。 JavaScriptのオブジェクトについて考察してみた - あと味 JavaScriptにおけるほとんど全てのデータはオブジェクトである オブジェクトの定義にもいろいろありますが、ここでは「メソッドを持つ」という狭い意味においても事実だということです。実際に見てみましょう。 p(true.toString()); p("String".toString()); p((1).toString()); p((3.14159265).toString()); p([0,1,2,3].toString()); p({q:"answer to life, the universe, and everythi

    javascript - にはクラスはない : 404 Blog Not Found
  • WebベースのアクションRPGを開発するならば使いたいフレームワーク·RPG JS MOONGIFT

    RPG JSはHTML5/JavaScriptによるWebベースのゲーム開発用フレームワーク。 RPG JSはHTML5/JavaScript製のオープンソース・ソフトウェア。HTML5を使ったゲームフレームワークが続々と登場している。ある程度汎用的なものもあるが、やはりゲームジャンルに合わせたフレームワークを選ぶのが大事だろう。 デモゲーム RPG(ロールプレイングゲーム)は常に人気の高いゲームジャンルだ。Webブラウザ上でできるRPGを自作したいならば使うべきはRPG JSだろう。 RPG JSはHTML5/JavaScriptで作られている。矢印キーとスペースで動いたり話しかけたりする。サウンドにも対応する。そして剣を装備するとAキーで振ることができる。NPCも数多くいて、話しかけるとゴールドを貰えたりする。聖剣伝説のようなアクションRPGになっており、どんどん攻撃をしかけていけるよ

  • 戻るボタンが押された際、ページのJavaScriptを途中の状態から実行させない方法

    スマートフォンを含む最近のブラウザでは、戻るボタンで前のページに戻った際に、JavaScriptも含めて前回の最後の状態を復元します(Back Forward Cacheと呼ばれます)。これはとても便利なのですが、ページを作成する立場からすれば、余計なお世話であることもあります。 Back Forward Cacheの無効化はとても簡単に実現できます。ページの中にonunloadを書くだけです。 <!DOCTYPE html> <html><head><title>onunload test</title> <script> window.onunload = function() {}; window.onload = function() { var count = 0; var loop = function() { document.getElementById("num").in

  • オブジェクト指向っぽい話が分かるかもしれないJavaScript講座 その1 | Takazudo Clipping*

    自分はスーパーJavaScripterでこんなすげーのが5行で書けちゃう。やばいだろ!とかいうのでは全然無いですが、オブジェクト指向っぽい話が最近分かってきたつもりで、それでやっときゃ問題無いってことを思い始めているので、なんかそんな話を書いていきます。 こんな短く書くテクニックがあるぜ! var hoge = hage ? huga : hoga; とか書けちゃうんだぜ!とかより、長くていいから分かりやすく拡張しやすいようにするにはどうするのかとか、そういう話ができればなーと思います。内容的には全くもって新しくも何とも無いですが。jQuery使ってやる前提です。 まんじゅう製造スクリプト 今日はまんじゅうを5個作ります。なんと、まんじゅうは、クリックすると隠れます。 まんじゅうサンプル var Manju = function(){ this.elem; this.hidden = fa

  • IT戦記 - JavaScript の this について

    WEB+DB PRESS 編集の R たんから、僕の連載記事に読者様から質問が来ていると教えていただいたので、その内容を教えていただきました。 以下、内容を転載 「JavaScriptわくわく開発道」の記事に関して質問です。 今回の内容で特に興味を持ったのはthisキーワードの振る舞いでした。 thisキーワードの説明には、オブジェクト型の変数を別の変数にコピーしてから初期化すると、コピーした変数からメソッドを実行できなくなるという例が紹介されていました。 そこには「(1)の時点でobj0には{}が入っているため、hogeは未定義となってしまう」という説明があるのですが、誌面の都合上省略があるためか、thisキーワードを用いることで問題を回避できるという理由がなかなか理解できないでいます。 自分なりに考えてみたところ、内部的には以下のようなことが起きているのではないかと思いました。 (1)

    IT戦記 - JavaScript の this について
  • Javascriptのthisと僕の可愛い妹 - tumblr

    久しぶりにJSいじってて、やるうちに文法とか制御構文とかIEに対する怒りとか色々思い出してきて、特にthisとか大事だと思ったので覚書。 thisって最初やったときは超鬼門だった。this使ってオブジェクト参照してたら全く違うもの参照しててデバッグに滅茶苦茶苦労したり。文脈によって中身が全く違う。訳わかんない。超八方美人。僕の妹みたい。今日ある男を家に連れ込んできたと思ったら、次の日は全く違う男と歩いてやがる。普段は僕のことなんかキモイとか言ってゴキブリとかvimmerとかと同等に扱って邪険にするくせに、たまにやたらボディタッチとかしてきて異常に甘えてくるときがある。訳わかんない。 でも、Javascriptのthisにしても、僕の妹にしても、その何かになびくポリシーさえ分かれば扱いは簡単だった。 thisってのはつまるところ、それの関数がどのオブジェクトのプロパティとして呼び出されたのか

    Javascriptのthisと僕の可愛い妹 - tumblr
  • JSLinux

    Run Linux or other Operating Systems in your browser! The following emulated systems are available: CPUOSUser InterfaceVFsync accessStartup LinkTEMU ConfigComment

  • javascript - jslinuxをローカルで : 404 Blog Not Found

    2011年05月19日09:00 カテゴリ javascript - jslinuxをローカルで 先週末から体調不良なので、今話題のjslinuxと戯れてみた。 http://bellard.org/jslinux/ ブラウザでJavaScriptが動く時代がやってきた! - 葉っぱ日記 もとのディスク容量が少ないので、適当な母艦を用意して、こんな感じ で新しいディスクイメージ作って、CocProxy や Fiddler の AutoResponder を使って root.bin へのリクエストをローカルのファイルに差し替えてやれば、好きなファイルも入れられますね。 それだと環境を整えるのが面倒なので、以下のようにして必要なファイルを全てローカルにもってきてもOKだった。 index.html linuxstart.bin vmlinux26.bin root.bin あとは root.b

    javascript - jslinuxをローカルで : 404 Blog Not Found
  • ブラウザでJavaScriptが動く時代がやってきた! - 葉っぱ日記

    というわけで、昨日から話題沸騰の Javascript PC Emulator すごいですね。JavaScript で書かれた x86 PC エミュレータ上で Linux 動かして、入ってる tcc 使えばそこそこのソースもコンパイルして動いたり。 もとのディスク容量が少ないので、適当な母艦を用意して、こんな感じ で新しいディスクイメージ作って、CocProxy や Fiddler の AutoResponder を使って root.bin へのリクエストをローカルのファイルに差し替えてやれば、好きなファイルも入れられますね。 というわけで、SpiderMonkey を入れて動かしてみました。ブラウザ内でJavaScriptが動くなんてムネアツですね! 手順としては、コンパイルの簡単な SpiderMonkey 1.7 を x86 の32ビットマシンで -static 付きでビルドして、r

    ブラウザでJavaScriptが動く時代がやってきた! - 葉っぱ日記
  • Private Presentation

    Private content!This content has been marked as private by the uploader.

    Private Presentation
  • JavaScript で private/public の実現 - llameradaの日記

    JavaScript は意外に強力な言語である。 http://d.hatena.ne.jp/brazil/20050829/1125321936 Private Members in JavaScript これらの記事に触発されて、prototype.js風にprivate/public機能をJavaScriptで実現してみた。こんな風にかける。 var Hoge = LayeredClass.create(); Hoge.prototype = { __private: { privateMethod: function(){ alert("public:" + this.publicVariable + "; private:" + this.privateVariable); } }, __public:{ publicVariable: null, initialize: fun

    JavaScript で private/public の実現 - llameradaの日記
  • JavaScript で setter/getter - あどけない話

    鶏肋(けいろく)。文字通りに取れば、鶏の肋骨という意味。 三国志演義という「フィクション」の中で、曹操は悪役として登場します。多くの人は演義を多少なりとも知っているものですが、正史は読まないので、曹操に悪いイメージを持っていることでしょう。中国史上、これほど不当に扱われている英雄も珍しいのではないでしょうか? 曹操は、すぐれた政治家であり、孫子を編纂したことからも分るように戦略家かつ文章家でした。また、三国志の時代きっての詩家であり、彼の読んだ短歌行は僕のお気に入りの漢詩です。 曹操は、劉備の漢を攻めあぐんでいるときに、鶏肋とつぶやきました。部下の誰もが意味が分からずにいる中、楊修だけが撤退の準備を始めました。楊修曰く: 「鶏の肋骨は、これを喰らうに肉なく、これを捨てんとするも捨てがたき味あり」 つまり、漢は捨てるのは惜しいが、たとえ攻略できても役に立たないということで、曹操が撤退の意思を

    JavaScript で setter/getter - あどけない話
  • JavaScriptのいろいろなコーディングルールをまとめてみた

    JavaScriptの書き方はJavaScript自体がある程度自由なためいろいろな書き方ができますが、一貫性を持って書いた方がバグなども発生しにくくなるため、コーディングルールを定めておくのはよいことだと思います(特に複数人の開発の場合) 有名な企業やライブラリはコーディングルールも公開している事が多いので適当にまとめてみました JavaScript style guide – MDC Docs Mozilla/Firefox向けのものなので、一部ECMAScriptの範囲を超えたものも含まれています。 多くの人が見ていると思うので、見たことない人は一度読んでみるといいです。 jscsにこのコーディングルールをチェックするプリセットが用意されています。 Google JavaScript Style Guide Google JavaScript Style Guide 和訳 — Goo

    JavaScriptのいろいろなコーディングルールをまとめてみた