Panda Noir

JavaScript の限界を究めるブログでした。最近は幅広めに書いてます。

JavaScript

Jestいいぞ

今更コードのカバレッジを気にし始めたクロパンダです(プログラミング歴7年目())。今までは結構ざっくりとテストを書いてきていました。というのも、コードカバレッジという概念がどうも七面倒でやる気が起きなかったのです。 しかし、JavaScriptテストツー…

文字列からミリ秒を計算するライブラリtime-f作った

setIntervalの秒数指定の場面など、ミリ秒で指定する場面は多いです。これをもう少しリーダブルにかけると嬉しいですよね?そこで今回は「time-f」というライブラリを作りました。

イミュータブルを簡単に実現するライブラリ「Immer」

なかなかクールなライブラリだったので紹介します。

enumをそこそこ綺麗に書く

今日で本ブログは6周年となりました。特に何かするわけではありませんが。 本題に入ります。enumをJavaScriptでそこそこ綺麗に書くテクニックの紹介です。 const [SUN, MON, TUE, WED, THU, FRI, SAT] = Array(7).keys(); これだけのTipです。Array(7)をArra…

log = console.log;はなぜダメなのか

本記事ではNodeJSのコードを検証しています。ChromeやSafariなどブラウザによっては実装が異なる可能性があります。

Closure Compilerが遅すぎるので早くする

google-closure-compilerここにガッツリ書いてありましたが、今まで気づいていませんでした。だいたい今まで8秒かかっていたところが2秒に縮まりました。4倍早くなった計算です。

gulpでJSの圧縮+モジュールバンドルをする

GulpっぽくRollupする記事が日本語で見つからなかったので書きました。

ES2015のクラス構文は今までのクラス構文の糖衣構文ではない

もう2018年になったのに今更ES2015の話かよという感じですね・・・ES2018といえばAsync Iterator楽しみですね。 仕様書を読んだわけではありませんので厳密なことは言えません。ご容赦ください。

Node.jsのFile操作まとめ

ファイル読み込み処理を書くたびにググっているので、まとめてみました。書き込みについては、読み込みとほぼ同じなので割愛します。

購読すべきJavaScriptブログまとめ

日頃から情報をかき集めていきたい人間なので、ためになりそうなブログを探してみました。今回、調査対象としたのは次のサービスです。 はてなブログ FC2ブログ アメーバブログ ライブドアブログ JUGEMブログ ソネットブログ ヤフーブログ 調査手法としては…

どういう需要があるのかわからないけどミュータブルなNumber作ってみた

JavaScriptのNumberはイミュータブルですが、for文のiに対してconstできなかったり微妙に使い勝手が悪いのでミュータブルなクラスを作ってみました。もっとも、演算子オーバーロードができないので使い勝手はこの上なく悪いですが。

SvelteのDynamic Componentがわかりづらかったので解説

Svelte 1.45.0にて実装されたDynamic Componentがドキュメントもなくてわかりづらかったので、コンポーネントを作ってみて調べました。

アナログ時計の影をCSSでいい感じに表現する

物理的に計算するのは光源の設定などがめんどうだったのでしませんでした。

functionの呼び出し方でthisが変わる時代は終わったんだよ(ブチギレ)

もう二度と「JavaScriptは呼び出し方によってthisが変わるという奇怪な言語なんですよ~(ドヤ顔)」とかするでないぞ??

有限オートマトンとはなんぞや

この記事は東北大学 計算機科学研究会 Advent Calendarの4日目の記事です。早くもネタ切れしてます。 授業でオートマトンをやったのと、有限オートマトンについて調べてみてもなかなかわかりやすい記事がないので書いてみることにしました。授業以前に本を読…

Riotのコンポーネント作り5日目 -シーンを表示する

GitHub - pandanoir/riot-component 久しぶりのこのシリーズ(およそ9ヶ月ぶり!)です。今回も割と使いみちにあふれていそうなものを作りました。

StealJSでサンプルつくってみた

StealJSをとりあえず動かして理解したい人向けに作ってみました。

モジュールバンドラーが知らぬ間に増えていた

モジュールバンドラーというと Webpack Browserify rollup Require.js あたりは知名度があると思います(rollupはそうでもないかも知れませんが)。しかし、乱世のJavaScript界隈、気が付けばかなりの数のモジュールバンドラーが乱立していました。今回はそん…

jQueryを使うときに安易にアロー関数を使ってはいけない(戒め)

タイトルは半分ネタですが、かなり陰湿なトラップに引っかかってしまったので記録として残します。

copyWithinを使った高速shift

配列操作でのshiftはコストが高いことで有名です。ところでつい先日ES2015にcopyWithinというメソッドが追加されていたことを知りました(今更)。調べてみたところ「左詰め」のようにズラす操作が得意なようです。これはshiftに使えるのではないか、と思い検…

「それ、もっとスマートに書けるよ」をリーダブルに

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) 「それ、もっとスマートに書けるよ」の||のところ、もっとスマートに(というかリーダブルに)書けるよという話

配列をいろは順にソートするプログラム

タイトルのとおりです。いろは順に並べ替える関数をつくりました。

JS Binの使い方

今までJavaScriptをちょっとブラウザで試したくなったときはalert+JSFiddleという地獄のような組み合わせをしていました。あまりガッツリしたことするわけでもないのでこれで十分だったんですね。 しかし、この間JS Binなるものを知ったので、試した雑感をま…

ひらがなからローマ字への変換可能パターンを列挙するプログラムをつくった

タイピングソフトを作っていたときに、かなり使えそうなローマ字変換プログラムをつくれたので単体で公開することにしました。たぶんほぼ入力可能な方法は網羅できていると思います。

jQueryを(多少は)マシに書けるFWを作った

jQuery、遊びツール作る分には重宝するのですが、やはりこのレベルでもつらく感じるのでフレームワークを作ってみました。

代入演算子を連結したら直感に反する挙動になった

ことの発端は、変数入れ替えのコードゴルフをしていたときでした。変数入れ替え手法のひとつとしてa^=b;b^=a;a^=b;というものがあるのですが、これを短くしようと躍起になっていたら起きました。

Fisher-yatesアルゴリズムでコードゴルフ

コードゴルフしてたらたのしくなったので、コードゴルフテクの紹介記事を書こうと思います。

分割代入の評価順に関する研究

以前、Fisher-Yatesアルゴリズムについての記事を書きました。記事中のコードをもっと短くできないか?と思い、検証してみたところ、「分割代入の評価順と代入演算子を悪用すればいいんじゃないか」と思いつきました。今回はそのテクニックを紹介しようと思…

Vue.js + nginxでSPA構築してみた

今までサーバー側をしてこなかったせいでSPAに対する印象があまりよくなかったのですが、サーバー側の設定をうまくすると通常のサイトとほとんど同様のページを作れると気がついたので構築してみました。

アクセスするたびにランダムで手牌を表示してくれるサイト作った

10分クオリティですがとりあえずできました。 実際に麻雀をしたときに実現可能な配列のみ表示するので、白14枚のようなありえない手牌は出ません。 まあぶっちゃけると生存報告記事です。