Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

ブックマーク / nazomikan.hateblo.jp (12)

  • 文字列リテラルとU+2028 - ぶれすとつーる

    元気にインターネットしてたらユーザの入力した値をこんな感じでDOMに埋め込んでるサイトをみつけた <a href='javascript:edit(2,{"a":"どらえもん","b":["×","×"],"c":"ふごふご"},1)'> ほげええ </a> 入力値いろいろかえて遊んでみたらだいたいの文字列はエスケープはされてたけど曰くのU+2028はsyntax errorだしてた Uncaught SyntaxError: Unexpected token ILLEGAL これは文字列リテラルの仕様で含められない値として決められてるLineTerminatorがu+2028であることが起因してる es5 #7.8.4 es5 #7.3 7.8.4 String Literals DoubleStringCharacter :: SourceCharacter but not doubl

    文字列リテラルとU+2028 - ぶれすとつーる
    efcl
    efcl 2017/08/08
    `\u2028`と`\u2029`について
  • exotic objectがhost objectの呼び名が変わったものという風潮 - ぶれすとつーる

    native object -> ordinary object host object -> exotic object って感じの解釈をよく聞くけど違うと思う。(誰も言ってなかったらごめんなさい) es6上での定義 4.3.6 ordinary object object that has the default behaviour for the essential internal methods that must be supported by all objects. 4.3.7 exotic object object that does not have the default behaviour for one or more of the essential internal methods that must be supported by all objects.

    exotic objectがhost objectの呼び名が変わったものという風潮 - ぶれすとつーる
    efcl
    efcl 2015/05/17
    ordinary objectとexotic objectについて。
  • requireの仕組み - ぶれすとつーる

    こんばんは この記事は Node.js Advent Calender 2014の23日目の記事です。 Node.js Advent Calendar 2014 - Qiita 普段node書くとき、何気なく使ってるrequireだけど、どんな風にモジュールが読み込まれてるのかコアコードの中を追ってみる。 https://github.com/joyent/node/blob/v0.11.14/lib/module.js#L362 Module.prototype.require = function(path) { assert(util.isString(path), 'path must be a string'); assert(path, 'missing path'); return Module._load(path, this); }; こいつが各moduleが読み込まれた

    requireの仕組み - ぶれすとつーる
    efcl
    efcl 2014/12/23
    Node.jsのrequireの仕組み。 どのようにファイル名の解決が行われるかやキャッシュのされ方、`Module.exteisons`によるjsやjsonファイルの処理について
  • ES6 Map/Setのキーの比較まわりの挙動の変化について - ぶれすとつーる

    今日Firefox29がでてその変更内容の中で 更新された ECMAScript6 仕様草案に準拠するため、Map オブジェクトおよび Set オブジェクトがキーと値の同一性を確認するときは、-0 と +0 を同一として扱うようになりました。 ってかいてるのみて、ほとんど出た当初のことしか記憶になかったけど色々更新されてるっぽいので追って見る Rev13(December 21, 2012)まで 15.14.5.9 Map.prototype.set ( key , value ) The following steps are taken: 23. Let M be the result of calling ToObject with the this value as its argument. 24. ReturnIfAbrupt(M). 25. If M does not hav

    ES6 Map/Setのキーの比較まわりの挙動の変化について - ぶれすとつーる
    efcl
    efcl 2014/05/01
    ES6のMaoの+0-0の判定について Object.isでしか判定されないようになった http://js-next.hatenablog.com/entry/2014/04/30/230138
  • 正規表現リテラルのes3からes5の間での変化 - ぶれすとつーる

    何度目かの聖書(JavaScript: The Good Parts)の輪読会をしてたときに、RegExpの章を担当してくれた子が、「正規表現リテラルから生成される正規表現オブジェクトは内容が同じなら参照も同じになります!」って説明してくれて、「あれ、そうだっけ」って思って調べた。 たしかに書いてる RegExp objects made by regular expression literals share a single instance: function make_a_matcher() { return /a/gi; } var x = make_a_matcher(); var y = make_a_matcher(); // Beware: x and y are the same object! x.lastIndex = 10; document.writeln(y.

    正規表現リテラルのes3からes5の間での変化 - ぶれすとつーる
    efcl
    efcl 2014/03/12
    ECMAScript 3-5のlastIndexの保持、正規表現リテラルでも毎回作成されるようになって参照じゃなくなった。https://bugzilla.mozilla.org/show_bug.cgi?id=501739
  • withとProxyを使ってフロントJSで外部からローカルスコープにアクセスする切り口 - ぶれすとつーる

    Proxyとwith使えばアクティベーションオブジェクト抜ける・・・? とりあえずwithの動的スコープ内のアクティベーションオブジェクトはさし抜けた。 Function#toStringとwithとeval組み合わせればローカルメソッドにアクセスできるのでは・・・? (function () { var obj = {} , activate ; activate = new Proxy(obj, { has: function (t, n) { return true; }, set: function (t, n, v, r) { obj[n] = v; } }); with (activate) { var a = 1; b = 2; } console.log(activate); }()); で、しばらくしてからこんなレスが。 evalでいいようなvar e=(function

    withとProxyを使ってフロントJSで外部からローカルスコープにアクセスする切り口 - ぶれすとつーる
    efcl
    efcl 2013/06/02
    Proxy with. eval local var.
  • 大きなPubSub、小さなPubSub。 - ぶれすとつーる

    JavaScriptにおいてもそのほかの言語においても疎結合というのは結構大きなテーマの一つだと思います。 そんな疎結合を促す実装としてPubSubがにわかに脚光をあびてますね。 にわかというより定期的に盛り上がってる気がしますが。 僕はあまりデザインパターン厨ではないのであまり語れるようなことはないのですが疎結合なコードというのはコードの再利用性が高まり幸せ度がかなり高いものだと思います。 そんなPubSubを強力に後押しするライブラリは世の中星の数ほどあるわけですが、ほんの少しだけ融通が利かないなーって思うこともあって半年くらい前に自作しました。 そう、95%くらい車輪の再発明です。 その名もPubsubJS(https://github.com/nazomikan/PubsubJS)。 どこかですごく似た名前を聞いたことはあるわけですがまぁそのへんはおいといて何がいっぱいあるPubS

    大きなPubSub、小さなPubSub。 - ぶれすとつーる
    efcl
    efcl 2013/04/21
    pubsubの運用について。 全体を管理するpubsubと、contextを共有するためのlocalContextのpubsubを作る
  • Nodeでプライベートな(exportsされてない)メソッドのテスト - ぶれすとつーる

    だいたいこの記事のまんまですが大雑把な訳記事だと思ってください。 こんなファイル(app.js)があったとする。 //app.js exports.testableMethod = function () { complicatedMethod(untestableMethod); }; var untestableMethod = function (a, b) { return (a + b); }; testableMethodはexportsされてるのでテストできますね(まぁ参照エラーでるけど) こういう時untestableMethodのテストって結構至難の業でexportsされてるメソッド経由でテストしてたり、テスト用に var local ; exports.test = local = {}; local.privateMethodA = fucntion () {}; と

    Nodeでプライベートな(exportsされてない)メソッドのテスト - ぶれすとつーる
    efcl
    efcl 2013/04/20
    Nodeのvm.runInContextを使ってexportsされてないメソッド等を別のモジュールから読み込んでテストをする方法について
  • cssのcounter()って便利だよなーって話 - ぶれすとつーる

    TL見てて@watilde氏がこんなこといってるの見て でもcounter()の存在知れてよかった。何か使い道ありそう。— わっちさん (@watilde) 2013年3月16日 昔制作さんにもらったテンプレでcounter()使われてたときはjsで制御しなきゃいけないだろーなって思ってところばっさりいらなくなったのでかなり感動したなーって思い出してあれだったのでサンプルコード書いてみた。 サンプル(動きはResultを参照) ぐぐったほうが正確な使いかたでるだろうけどcounter-incrementすればcssでカウンター機能が実現できるよってやつ .item-first { border-top: 6px solid #069; counter-reset: item; } .item-raw { border-left: 6px solid #069; border-right:

    cssのcounter()って便利だよなーって話 - ぶれすとつーる
    efcl
    efcl 2013/03/18
    CSS counterでリスト番号の表示
  • ieの関数オブジェクトのスコープのきもちわるいやつ、もっときもちわるかった。 - ぶれすとつーる

    javascript gardenとかで紹介されてるこういうスコープ http://bonsaiden.github.com/JavaScript-Garden/ja/#function.general [名前付き関数式]のところ var foo = function bar() { console.log(bar); // 動作する console.log(foo); // 動作する } console.log(bar); // ReferenceError foo(); // 動作する 割と知られてる話だけどfooとbarでは指してる関数オブジェクトは同じですけどスコープが違います。 これはいつものことながらieでは挙動が違います。 in ie var foo = function bar() { console.log(bar); // 動作する console.log(foo);

    ieの関数オブジェクトのスコープのきもちわるいやつ、もっときもちわるかった。 - ぶれすとつーる
    efcl
    efcl 2013/01/01
    IE8以下の名前付き関数式を使った際の関数と代入先の変数の参照は一致しない
  • アニメーションとUIスレッド - ぶれすとつーる

    前回の記事(setTimeoutとUIスレッドを学ぶよ JS Advent Calendar, オレ標準コース)で紹介したUIスレッドの概念でアニメーションをみてみる。 前回の復習 UIスレッド UIスレッドとはjsとUIの更新が行われるプロセスのことである。 UIスレッドはただのキューイングシステムでプロセスがアイドル状態になるまでタスクを保持する。 プロセスがアイドル状態になったら次のタスク(UI更新やjsの実行)をキューから取り出して逐次的に実行していくものである。 これをもとにアニメーションがいかに描画されているのかをみてみる。 今回はこんな感じのアニメーションについて。 【demo】 http://jsfiddle.net/nazomikan/7RJWU/ (function (win, doc) { var run = doc.getElementById('run'), //

    アニメーションとUIスレッド - ぶれすとつーる
    efcl
    efcl 2012/02/12
    JavaScriptのUIスレッドとアニメーション。
  • Proxyでオブジェクトにlength - ぶれすとつーる

    ある日、会社で「オブジェクトにlengthプロパティが欲しい」といわれたので色々考えてみました。。 lengthプロパティはArrayオブジェクトとかに存在するあれです。 var ary = ["a", "b", "c"]; console.log(ary.length); // output: 3 これを普通のオブジェクトにも欲しいといわれました。 理想はこんな感じらしい。 /* error */ var obj = { 'a': 1, 'b': 2, 'c': 3 }; console.log(obj.length); // output: 3 てっとりばやく関数化するとこんな感じ。 Object.prototype.length = function () { var i = 0, prop; for (prop in this) { if (this.hasOwnProperty(

    efcl
    efcl 2012/02/12
    Proxy.create
  • 1