JavaScript

今日知ったTypeError/URIErrorとFunction.length/arguments.lengthについて

JavaScriptに組み込みエラーオブジェクト(って呼び名でいいのか?)として TypeError URIError があるのを知らなかった…… Errorくらいしか使ったことなかった。SyntaxErrorとかはたまに見るから知ってたけど。 あとFunction.lengthとarguments.lengthの違い…

コードカバレッジを出力できるツールとか

JSCoverage以外にJavaScriptでコードカバレッジ取れるツールはあるのかなーと思って調べてみた。 ブラウザ JSCoverはJSCoverageの後継みたい。割と新しい。 script-coverはGoogle製のChrome拡張。 node.js whiskeyはnode.js向けのテストランナーって書いてあ…

YUIDocを使ってみたよ

JavaScript向けのドキュメントジェネレータというと、JSDoc toolkitとかDoccoなどがありますが、YUIDocが程よく手軽な感じで使ったこともなかったので使ってみました。 昔はJavaかなんかで作られてた気がするのですけど、いまではnpmモジュールになってるの…

base62.jsを書いたよ + 苦労したよ日記

必要にかられてbase62.jsというのを書きました。数値や文字列を0..9, a..z, A..Zにエンコード・デコードするものです。 node.jsで使おうと思っていたので当然npmからそういうライブラリがないか探していたのですが、テストが書いてなかったりとか……(この程…

チェック柄の背景画像を生成するJavaScript製のアプリを書いた

makeboothの背景に使おうと思って作ったのはいいけど、合わなそうなので背景色を変えるだけにしてやめた。 使われないアプリだけが残ってしまった……

BOWERを試してみたよ

TwitterがnpmライクなBOWERというWeb用パッケージマネージャをリリースしたようで。 リリースしてちょっと経ってますがやっと触れたのでメモメモ。 環境:Ubuntu Server 12.04 LTS 32bit インストール BOWERは普通に $ npm install -g bower で使えるのです…

JavaScriptテクニックバイブル Chapter01 - Chapter02

JavaScriptテクニックバイブルをちょっとずつ読み始めました。JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技作者: JSサポーターズ出版社/メーカー: 技術評論社発売日: 2012/08/31メディア: 単行本(ソフトカバー)購入: 38人 クリック: 1,796…

map関数って……ナニ?

Array.prototype.mapとかあるじゃないですか。恥ずかしながらどういう関数なのか、何に使うのか知らなかったので調べてみたのでした。 当然のことながらMapReduceもよくわかっておらず……ハズカシー [1, 2, 3].map(function (val) { return x * 2; }); // => …

Array.prototype.slice.callとlength

ちょっと暇だったのでArray.prototype.slice.callと戯れてみることに。 Array.prototype.slice.call({ 0: 123, 1: 456 }); // [] Array.prototype.slice.call({ 0: 123, 1: 456, length: 1 }); // [123] Array.prototype.slice.call({ 0: 123, 1: 456, lengt…

new Xxxとnew Xxx()の違い

JavaScript の new Dog は new Dog() と何か違うのでしょうか - QA@ITより。 同じなのか、知らなかった。

Effective JavaScriptを読んだよ

Effective JavaやらEffective C++やらありますが、Effective JavaSctiptというのもありまして。書籍になっているわけではないですが。Effective Java 第2版 (The Java Series)作者: Joshua Bloch,柴田芳樹出版社/メーカー: ピアソンエデュケーション発売日: …

またしても曲率さくら

forked: 曲率さくら - jsdo.it - share JavaScript, HTML5 and CSS一次元配列でやってみたりとか。Firefoxでは速くなったかも。(12から13でだいぶ変わった?)Chromeとかはあんまり。 高速化って難しい。闇雲にやってる現状もあまり喜ばしいことではないか…

最近のマイブーム:曲率さくら高速化

最近のマイブーム、「曲率さくら」の高速化。 大本のコード 曲率さくら - jsdo.it - share JavaScript, HTML5 and CSStoteteroさんの大本のコード。遅いのがもったいない!と思ったので大分前に小手先の高速化をはかったものが以下。 フォークその1 forked: …

JavaScriptのコードをJSXにトランスレート(か?)してみたよ

儚く散りゆく桜.jsx forked: 儚く散りゆく桜 - jsdo.it - share JavaScript, HTML5 and CSS出来あがったのはこれ!(JSXのコードはHTMLタブにあります) window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twtt…

JSXを使ってみたよ

朝起きたらJSX!JSX!なんてTwitterのTLに流れてるものだからなんだろうと思ったら、 静的型付けでOOPなJava風のコードを「速い」JavaScriptのコードに変換してくれるコンパイラみたい(あってるのかな?) んで、さっそく試してみたのですよー。 環境:Window…

JavaScriptクックブック 第1章

JavaScriptクックブック作者: Shelley Powers,株式会社クイープ出版社/メーカー: オライリージャパン発売日: 2011/04/23メディア: 大型本 クリック: 22回この商品を含むブログ (9件) を見る本棚でずっと眠っていたJavaScriptクックブックをちょっとだけ読ん…

syntasticとjshint(とnode.js + npm)でJavaScriptの構文チェック環境(?)を整えたよ

Vim上で各種言語の構文チェックを行ってくれるsyntasticプラグインと、JavaScriptの構文チェックを行ってくれるjshintのnode.js版をインストールして、VimでJavaScriptの構文チェックをする環境を整えてみたのですよ。 環境:MacOS 10.7.3 / nodebrew 0.5.0 …

uupaa先生によるJavaScriptベンチマークについて

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

ゼロからはじめるenchant.js入門 第1章

HTML5とJavaScriptでスマートフォンゲーム作成! ゼロからはじめるenchant.js入門【公式ガイド】作者: 布留川英一,伏見遼平,田中諒出版社/メーカー: KADOKAWA/アスキー・メディアワークス発売日: 2012/02/18メディア: 大型本購入: 12人 クリック: 246回この商…

JavaScriptでクラスとか委譲とか

コンストラクタはfunctionに対してnewをして、prototypeは継承されて……とかは知ってるし、コードも一応書ける。(つもり) で、その先の継承とかってどうなん?と思っていろいろ書いてみた。継承めんどいから委譲にしたけど。 クラスの基本 クラス - jsdo.it…

jsdo.itでWebWorkers

はじめてのWebWorkers - Main - jsdo.it - share JavaScript, HTML5 and CSS はじめてのWebWorkers - Worker - jsdo.it - share JavaScript, HTML5 and CSS jsdo.itでも工夫すればWebWorkers書けるんじゃないか…… "http://jsdo.it/{user}/{codeId}/js"でJava…

WebWorkersでエラー表示

最近のブラウザだとワーカ内でエラーが起こった場合、コンソールに表示してくれるけど、 ちょっと古いブラウザだと表示も何もしてくれないとか…… というわけでエラーの表示を。 上の記事にちょっと手を加えたものを以下に。 環境:MacOS 10.7.2 64bit / Goog…

初めてのWebWorkers

新年のやる気のあるうちにやっておこうと思い、WebWorkersを試してみたのです。 jsdo.itでファイルアップロード機能があったので、そこでやろうかと思ったら画像とか マルチメディア系のファイルでないとアップロードできないみたいで…… 仕方なしにローカル…

Cloud9をローカルで動かしてみようとしたが動かせなかったメモ

Cloud9ってソースコードをgithubで公開してるのですね。というわけでcloneして使ってみることに。 環境:LinuxMint12 64bit $ git clone git://github.com/ajaxorg/cloud9.git $ cd cloud9 $ bin/cloud9.sh submoduleのcloneに失敗。 $ git clone git://gith…

Project Euler - Problem 1

Problem 1 - Project Eulerをやってみました。 Google翻訳していい加減に理解したけど、1000までの3と5の倍数を足し算する、っていう理解でいいのかな? // 3と5のすべての倍数を求める (function(max){ var i, a3 = [], a5 = []; for (i = 1; i < max; ++i)…

最近買ったもの

Vimテクニックバイブル ?作業効率をカイゼンする150の技作者: Vimサポーターズ出版社/メーカー: 技術評論社発売日: 2011/09/23メディア: 単行本(ソフトカバー)購入: 19人 クリック: 661回この商品を含むブログ (37件) を見るパーフェクトJavaScript (PERFE…

JavaScriptパターン 第5章の続き その2

モジュールパターン お勉強 : JavaScriptパターン / 5.4 モジュールパターン - jsdo.it - share JavaScript, HTML5 and CSSいままでやったことの集大成みたいな。これならコードが成長できるね!

JavaScriptパターン 第5章の続き

前回の続き。 プライベート関数をパブリックメソッドとして開示する var aaa; (function(){ function b() { console.log('b'); } function c() { console.log('c'); } // publicにする aaa = { b: b, c: c, a: b }; }()); aaa.b(); // b aaa.c(); // c aaa.a…

JavaScriptパターン 第5章

最後に読んだのいつだったかなーと思ったら4ヶ月前とか…… JavaScriptをがんばる年だったのにいつの間にか脱線。いつもの悪い癖。 名前空間パターン function Constructor1() {} function Constructor2() {} var aaa = {}; var bbb = {}; とかやってしまうと…

argumentsを配列に

よく忘れるのでメモメモ。 var arguments_ = Array.prototype.slice.call(arguments);