Panda Noir

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

2016-01-01から1年間の記事一覧

i++はスペース挟んでi ++でもok

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) コメント頂いて雑に書きすぎたと思い書き直し。 本記事は「i++と書きがちだけど実はi ++って書いてもいいんだよ」と新しい視点を提供…というと大げ…

jQueryを使うべき2つの理由と使わないほうが良い3つの理由

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) 追記: 個人的にそろそろ脱jQueryが来てもいいんじゃないかなと思い書いた記事です。 まあ読むとわかりますが、趣旨は「jQueryの悪いところAngularな…

HTMLで🍣をUnicode表記で表示する方法

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) ずばりこれ 🍣 をUnicodeに変換するコードは下。もいけた。は出来なかった。謎である。(下に追記があります) const sushi = ''; let res = 0…

言語仕様から入るJavaScript入門 その1

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) まあ僕は今受験生でしかも今11月なんで中身はほぼ0です。そのうち書き直します。多分。 誰か代わりに書いて 仕様書 今回はECMA262で書いていきます…

麻雀の役判定アルゴリズム

作りました。七対子、国士以外の判定です(二つは簡単すぎますよね)。また、流し満貫ものぞきます。

TypeScriptで作ったライブラリをブラウザ対応、CommonJS対応させる

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) 結構試行錯誤したのでメモ。 全ての元凶(?) 最近の行儀のよい JavaScript の書き方 はじめはこの記事のやり方をTypeScriptに流用しようとしました。…

Canvasをめちゃくちゃ使いやすくするライブラリ「UnitaryJS」作った

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) ずっと思ってたんです。 「ctx.beginPath(); ctx.moveTo(x, y);」とか書くのは私の性に合わないな、と。 こんな無機質なプログラムは書きたくないな…

arr[arr.length++] = 0というコードについて

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) ngRepeat.jsにあった、 clone[clone.length++] = endNode; というコード。おそらく arr[arr.length] = 0; というコードの亜種と思われる(clone.leng…

JavaScriptのコードを綺麗に見せるたった2つのポイント

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) 記事書く時にのせるJavaScriptコードはなるべく綺麗な方いいです。綺麗だと読む人も疲れません。 他にも常日頃からJavaScriptコードを綺麗に書くよ…

配列の使いみちを実例付きで解説する

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) 対象読者 「配列なんて何に使うんだよ…変数でいいじゃん。」みたいに感じている初心者だった頃の私のような人。 「配列は役立つなぁ。便利だなぁ。…

AngularのServiceとFactoryの使い分け(ほぼ)決定版

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) ようやくわかったのでまとめておきます。決定版と言って差し支えないはずです。これ読めば 絶対に ServiceとFactoryの違いがわかります。これでもう…

よく引っかかるCoffeeScriptの罠

hoge -1 するとエラーが起きます。演算子として使うには hoge - 1 のように1つスペースを挟まなくてはいけません。関数呼び出しの関係(hoge(-1)と解釈されてる)でこうなってるのではないかと推測してはいますが、かなり理不尽なエラーだと思ってるのでなんと…

Angularでスパゲッティを作ったことがある人へ

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) Angularでスパゲティを大量生産するのはMVC厳格に守りつつAngularでアプリケーション作れてないからです。実はMVCを厳格に守りつつ作るのはかなり難…

HTML入門

HTMLはとても簡単な言語なのでサッサとマスターしてJavaScriptしましょう。

意外すぎる"未定義"の配列とその挙動

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) JavaScript で同じ要素が繰り返す配列を作る この記事を受けてコメントして自分の浅学を晒してしまいました。 さすがにまずいと思い、自分で検証し…

JavaScript製HTMLパーサー改

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) ※これは私が以前書いたJavaScript製HTMLパーサーとは仕様が大きく異なります。 以前との違い 以前書いたHTMLパーサーをより使いやすくしました。ど…

JavaScript製HTMLパーサー

追記 この記事のパーサは使いづらいです。子要素の取得すら面倒です。JavaScript製HTMLパーサー改に使いやすく改善したパーサーを載せましたのでそちらを御覧ください。 本題 今回はHTMLパーサーを作りました。HTMLパーサーは、Webスクレイピングやらなにや…

parsimmonで数式の解析

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) parsimmonで数式をパースしました。あとは操車場アルゴリズムでも適用してやれば計算も可能です。 const Parsimmon = require('parsimmon'); const …

JavaScriptのパーサコンビネータ Parsimmonを使ってみた

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) パーサコンビネータなる素敵なものを見つけたので使って検索クエリのパースをしてみました。そのとき、理解するのに時間がかかったのでメモを残して…

文字列が格納された配列をGoogleのように検索する

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) Google検索のように A or Bみたいに検索可能にしました。 配列を探索して当てはまった要素を抜き出した新しい配列を返します。元の配列に変更を加え…

もはや2番煎じとかそういったレベルでないライフゲーム実装してみた

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) 一応実装できてるはずですが、仕様熟読したわけじゃないのであやしいです。 簡単な説明 コードを簡単に説明すると、Cellクラスは位置情報、状態(生…

好きな順番で配列をソートする

世の中には辞書順という便利なものがあります。しかし、意外とオリジナルの順序を作りソートするプログラムは見かけません。 例えば麻雀では「東」「南」「西」「北」という4つの牌があります。これら4種類のみからなる配列を「東南西北」という順にソートす…

任意の文字列を任意の回数繰り返す

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) たとえばインデントをしたりゼロ詰めするときとかに使うのでメモ。 以下、strをn回繰り返した文字列をresという変数に格納するとする。 ループして…

麻雀ゲーム作りながら覚える!プログラミング講座

「東北大学に麻雀好きな人多いから、麻雀ゲーム作るといえばみんなプログラミングするんじゃね?」という浅はかな考えから書くことになりました。

ヘボン式のローマ字を変換するプログラム

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) ググっても出てこなかったのでドラマウロボロス聞きながら作りました。そのせいでif入り乱れのスパゲッティです。あしからず。 ※ヘボン式自体が不可…

CoffeeScriptで変数を初期化せず宣言のみ行いたかった

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) 公式サイト(http://coffeescript.org) でみたのであってるはず。ただし動作がおかしい 追記読んでください a = b = c = "unknown" f = -> [a, b, c]…

CoffeeScriptで定数をグローバル汚染最小限かつ簡単に渡す

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) exports.BLACK = 0 exports.WHITE = 1 exports.YELLOW = 2 exports.RED = 3 exports.BLUE = 4 定数はよく使いますよね。そして徐々にグローバル汚染…

カレンダーをJavaScriptで作ってみた

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) アプリで使うために作ったけど意外と汎用性高そうだったので別ライブラリに分離しました(もともとAngularJSのfactoryとして作ったものだったので、…

ふと思ったのでthisの検証をしてみた

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) * var outerMethod = function() { return this.name; }; var obj = { name: 'hoge', outerMethod: outerMethod }; global.name = 'fuga'; console.…

カウンタ変数なしでconsole.logをn回に一回くらい実行する

(この記事はQiitaで僕が書いたものを移行した記事です。記事中のコメントはQiitaの該当記事を参照ください) 注意: 厳密にn回に1回ではないです 10000回もconsole.logを呼び出すと重くなりますよね。それでcount変数を作ってcount%1000===0として実行回数を落…