basyura's blog

あしたになったらほんきだす。

javascript

javascript : getter, setter, Proxy, Reflect

最近の javascript もある程度勉強したつもりだったけど、全く知らなかった。 明示的な getter & setter const hogeProxy = { _hoge: null, set hoge(v) { this._hoge = v; }, get fuga() { return this._hoge; }, }; hogeProxy.hoge = "(=ΦωΦ)"; console.lo…

オフラインJavaScript勉強会 #tkbjs に行ってきた

Effective JavaScript作者:David Herman翔泳社Amazon3 冊目への突入記念で万葉さんのオフィスにおじゃましての開催。http://tkbjs.doorkeeper.jp/events/6786とはいえ、2 冊目途中からほぼ参加できず・・・( ゚∀゚)・∵. グハッ!!最近は javascript を書かないのも…

Kindle Personal Document で表示されてるものを一括削除するグリモン

BookmarkletをPersonal Documentのページで実行すると、下のスクリーンショットのように本のタイトル横に「×」マークが出る。それをクリックするといっさいの確認なしにファイルが削除される。 Kindle Personal Documentの削除処理を簡単にするBookmarklet …

auto-kindle-it

README greasemonkey for kindle it (http://fivefilters.org/kindle-it/). this greasemonkey push to kindle automatically when you click the kindle it. auto-kindle-itle あとで読む記事を pocket (read it later) に放り込んでいたけど、最近は kindl…

Twitter の Web ページに、リストに飛ぶメニューを追加する Greasemonkey

https://github.com/basyura/add_list_menu_to_twitter※ エイプリルフールネタではありません。twitter の web ページがだいぶ使いやすくなったんだけど、リストにたどり着くまでがめちゃくちゃ遠くなった。なので、簡単に飛べるグリモンを書いたみた。ただ…

hatebu-show-b-comments を作ってみた

はてブリニューアルに合わせたわけではないのだけれど、以前書いていた LDR Show B Comments を元に jQuery を使ってはてブ用に書き直してみた。 http://userscripts.org/scripts/show/126634 https://github.com/basyura/hatebu-show-b-comments m でカレン…

Twitter - Web のアクティブなツイートを分かりやすくする

ショートカットキーも使いやすくなったし、軽くなったしでデザイン変更は良かったと思うんだけど一つに気になるところが。 j, k でカーソル移動してる際にどのツイートがアクティブなのかが分かりづらい。 なので、keysnail で色をつけてみた。 _keynsail.js…

keysnail で端末ごとのローカル設定ができるようにする

問題 設定ファイル (_keysnail.js) は github で管理してるけど、端末ごとに異なる設定も持ちたい。 たとえば、社内の Web ページをゴニョゴニョする設定とか。github に上げられないものとか。 解決 _keysnail.js に以下を書く。 try { userscript.jsFileLo…

Firefox でピン留めされたタブの判定

ピン留めれたタブは「×」(閉じるボタン)が出ないから "簡単には" 閉じられないって理解でいいんだろうか。 「閉じたくない」「ブラウザを起動するときには表示してほしい」からピン留めするんだろうけど、keysnail でガシガシ閉じちゃうので勢い余ってピン留…

プライベートなメンバ変数

プライベートメンバについてメモ代わりに適当なサンプルを書いてみました。 CoffeeScriptのプライベートメンバについてのメモ めんどくさいらしいので確認してみる。 javascript で書いてみる function Person(name) { var name_ = name this.get_name = fun…

javascript の apply と call

apply メソッドは 2 つの引数、 thisArg および argArray をとり、オブジェクトの Call プロパティを使用して、関数呼出しを実行する。オブジェクトが Call プロパティを持っていない場合、例外 TypeError が投げられる。 thisArg が null または undefined …

キーバインドの変更

j を押下したタイミングで次のアイテムまでスクロールするついでに LDR Full Feed を使って本文を取得するようにしてたけど、最近しっくりこなくて変更。 j で下向きにページスクロール。まだスクロールしていない場合は次のアイテムまでスクロール。 k で上…

配列の添字プロパティ

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス作者:Douglas CrockfordオライリージャパンAmazon []添え字演算子は、与えられた式を、もしその式に toString メソッドが存在するならそれを使って文字に変換し、その文字列をプロパティ…

Yahoo! News の概要ページをすっ飛ばす

Yahoo! のトップページでトピックスを選択した後に表示される概要ページってなんなんだろ。アクセス数稼ぎだと勝手に思ってるんだけど。autopager を使っても読み込みのタイムラグがあるし、概要と本編で二重になっちゃうからうざい。なのですっ飛ばすグリモ…

JavaScript パターン

JavaScriptパターン ―優れたアプリケーションのための作法作者:Stoyan StefanovオライリージャパンAmazon JavaScript にはクラスがないので、クラスのインスタンスという概念は意味をなしません クラスを使うやり方をクラシカルという(「クラス」という語を…

インスタンス変数を外から見られないようにしてカプセル化したい

function を new してオブジェクトを生成した際に、外部から変数を見られないようにするにはどうしたらいいのか。 java でいうと下記の当たり前(?)なこと。 public class Person { private String name_ = null; public Person(String name) { name_ = name;…

関数の名前を取得する

JavaScriptパターン ―優れたアプリケーションのための作法作者:Stoyan StefanovオライリージャパンAmazonより。無名関数だと取れないけど、 var add = function() { } print(add.name); //=> 名前付き関数なら name 属性で関数名を得ることができる。 print(…

Array.prototype.slice

1. A を、式 new Array() と同様に生成した配列とする。 2. このオブジェクト の [[Get]] メソッドを、引数 "length" で呼出す。 3. ToUint32(Result(2)) を呼出す。 4. ToInteger(start) を呼出す。 5. Result(4) が負ならば、 max((Result(3)+Result(4)),0…

Array のメソッド

filter ある配列の要素で、与えられたフィルタリング関数が true を返したものすべてからなる新しい配列を生成します。 forEach 配列中のそれぞれの要素について関数を呼び出します。 every ある配列の全ての要素が与えられたテスト関数を満たした場合に tru…

javadoc をインクリメンタルサーチする

javadoc を vim から引きたいなぁと試行錯誤していたけれど中断。 本仕様書は著作権により保護されており、本仕様書に記載されている情報は、単数または複数の米国特許、外国特許、または特許出願により保護されている場合があります。以下のライセンスに基…

prototype を使う場合と使わない場合の速度比較

prototype を知らずに作って今に至る某システム。レスポンス問題が再燃したので prototype の使用有無でどれだけ違うのかちょっと比較してみた。 簡単なオブジェクトを new で生成する場合の速度比較 this.xxx を使ってグローバルな関数をメンバ(オブジェク…

new

関数が new 演算子を伴って呼び出されていて、戻り値がオブジェクトではなかった場合には、this (新しく生成されたオブジェクト) が代わりに返されることになる。 javascript the good parts - P.37 オブジェクトではないもの 数値、文字列、真偽値、null、u…

chain.js - Data Binding Plugin for jQuery

<div id='language'> <div class='item'> <span class='name'>language's name</span> </div> </div> といったテンプレートを用意しておいて、javascript で操作できる jquery plugin。 Chain.js is a jQuery plugin to bind javascript data to html and generate content using the data. It provides automatic data management and co…

java っぽく

java の class っぽく定義する場合、メンバ変数を間違えて変更しちゃう事故を防ぐには引数に _ をつけるのがいいのではないだろうか。気持ち悪いけど。 function Person(name_){ this.getName = function() { return name_; } this.setName = function(name)…

this は呼ばれ方によって 4 種類の違いがある

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス作者:Douglas CrockfordオライリージャパンAmazon メソッド呼び出しパターン 関数呼び出しパターン コンストラクタ呼び出しパターン apply 呼び出しパターン このうち、コンストラクタ呼…

文字列リテラルはプリミティブ

Javascript は String プリミティブと String オブジェクトを自動的に変換するので、String プリミティブである文字列上で String オブジェクトのあらゆるメソッドを呼ぶことができます。JavaScript は String プリミティブを一時的な String オブジェクトに…

bowline-twitter に勝手に機能追加

bowline による twitter クライアントの改造版(http://github.com/basyura/bowline-twitter) Ruby, HTML and JS desktop application framework. bowline css dock menu (jquery's plugin) で Dock っぽい動き If you are a big Mac fan, you will love this…

調子にのって臨兵闘者皆陣列在前

画面を表示した際にプレグレスバーみたいなアクション max の 90% をこえると臨兵闘者皆陣列在前 フォントのサイズと透明度を動的にしてみたり http://gist.github.com/508092

LDRで臨兵闘者皆陣列在前するまでは踏み切れないので経過時間が分かる greasemonkey を書いてみた

やらないといけないことがあるのに,だらだらLDRでフィードを読んでしまうことがあって,不毛な感じだったので,ちょっとずつフィードを見れなくするのを作った. LDRをちょっとずつ見れなくするGreasemonkeyを作った 全く同感。情報を得るために使っている…

Array#splice

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス作者:Douglas CrockfordオライリージャパンAmazon array.splice(start , deleteCount , item...) splice メソッドは、配列から要素を取り除き、新しい要素で置き換える機能を提供する。…