JavaScript
JavaScriptで配列の内容をソートするとき、sort関数を使います。 ただし、sort関数はデフォルトで文字列比較を行ってしまうんですね。 数値比較をするには、引数に比較関数を渡してあげる必要があるんですね。 すっかり忘れていました。 サンプルコード gist…
競技プログラミングで初めて制限時間に引っかかりました。 対処法を考えているうちに、データ構造について1つ学びがあったのでメモします。 ちなみに、重くなった原因はユニーク判定の仕方でした。 最初に書いたコードがこちら。 gist9b15f1b88ba817838fc7 …
例えば、以下のような2重のswitchがあるとします。 gist2f786f89069acd1edce1 まず、主語が何であるかによって分岐します。次に、時間帯によって分岐して、行動をalertします。 そんな2重の条件分岐があるとします。 でも、これってマッピングできるなあと…
今回は独自に作成した加算関数を紹介します。 これの続きです。 chuckwebtips.hatenablog.com 加算関数をつくる目的 JavaScriptのルールでは、'5' + '10'は'510'となります。 見た目的には数値なのに、クオーテーションで囲まれているために、文字列の結合が…
競技プログラミングで3分ほどハマった。検証が楽しくてさらに10分ほどハマった。 '6000' - ('40' + '10') * '50' の結果です。 パット見で分かりますか??? ' ' は文字列を表します。 ふつうに数値として計算したら、3500ですよね。 ところが答えは -19…
stringクラスのsplitとarrayクラスのjoinを使えば、不純物探知ができるよねというお話。 以下のコードを例に取ります。 gist2676ae0c57f3323742be 最初にhelloがたくさん並んだ文字列があります。一見、すべてhelloに見えますね。 次に、split('hello').join…
車輪の再発明です。 区切り文字列を配列にしたいとします。 それをいちいちfor文で走査して配列化してしまいました。でも、splitを使えば一瞬だよねというお話。 例えば、以下の変換をしたいとき、 var str = 'abc de fg'; var ary = ['abc', 'de', 'fg']; i…
最近はじめてconsoloe.time()を知りました。 この関数を使うと、JavaScriptの処理時間を計測できるようです。 使い方 以下のように使います。 gista72712964611fe8743f7 使ってみる まずは空の状態で使ってみます。nodeで実行するとこのとおり。 処理がない…
こちらの続きみたいな感じ。 chuckwebtips.hatenablog.com 続きにしては文量多い。「JavaScriptで学ぶ関数型プログラミング」の第4章をひたすら写経しました。 ので、ブログに残します。 所感 高階関数自体はそこまで難しくない。複雑でなければ。 いや、複…
僕は先日はじめて体験しました(遅い) 自分ができるようになったのを良いことに、自慢気に書いていこうと思います。JavaScriptの標準入出力について。 標準入出力って?? Web系の人にはピンと来ないかもしれませんね。 ターミナル(コマンドライン)上での…
小ネタです。 JSファイル内でJSファイルを読み込む。今までやったことなかったので、メモしときます。 今まで いままではHTMLで読み込んでました。 こんな感じですね。 これから requireという関数?を使えばよいらしいです。 こんな感じです。 同じディレク…
いまこちらの本を読んでいます。 JavaScriptで学ぶ関数型プログラミング。 まだ半分しか読んでいませんが、ちょっとメモしておきます。 今回は高階関数について。 JavaScriptには高階関数というものがあります。 書籍によると、その定義は 関数を引数にとる …
JavaScriptでつくる高階関数のうち、もっともシンプルなものを作成します。 gist507dd0644a06cc368c6a splatという関数は、引数に関数を受け取って、戻り値として関数を返します。 この時点ではまだあまり恩恵を感じませんが、これは立派な高階関数です。 と…
どうも!chuckです。今回はJavaScriptの配列についての復習です。 JavaScriptの配列はそもそも、Arrayオブジェクトというグローバルオブジェクトを指します。 配列を定義するということは、このArrayオブジェクトのインスタンスを作るということです。 実際…
どうも!chuckです。 JavaScriptでは文末のセミコロンを省略できます。それはなぜかと言うと、勝手にセミコロンを自動挿入して補ってくれるためです。 ただ、最近コーディングしていて気づいたんですが、時々セミコロンを挿入してくれないんですよね。シンタ…
どうも!chuckです。 JSのプラグインを開発しましたので、改修します。 chuckwebtips.hatenablog.com github.com
JavaScriptのクロージャについて、おさらいします。 developer.mozilla.org
どうも!chuckです。 JavaScript中級者に向けて、今日も勉強していきますよー! chuckwebtips.hatenablog.com 今回学ぶのは、レキシカル変数について。クロージャはそこそこ分かったのですが、レキシカル変数についてはわかっていなかったようです。 なので…
どうも!chuckです。 引き続きUnderscore.jsのコードを読んでいきます。 chuckwebtips.hatenablog.com ちなみに、現在100行まで読んだようです。ただし全部で1600行あるので先は長いですね…。
どうも!chuckです。 Underscore.jsを読んでいきます。 chuckwebtips.hatenablog.com
どうも!chuckです。 前々からやりたかったのですが、ついにJavaScriptプラグインを自作しました。なので記録します。と言ってもすごくカンタンなプラグインですがw
どうも、chuckです。引き続き、Underscore.jsを読んでいきます。 JSライブラリ「Underscore.js」を読んでJavaScript中級者になる! ~プロトタイプとプロパティ~ - コンパイラかく語りきchuckwebtips.hatenablog.com
どうも!chuckです。 引き続きUnderscore.jsを読み解いていきます。 前回の記事 <a href="http://chuckwebtips.hatenablog.com/entry/2015/08/27/070000" data-mce-href="http://chuckwebtips.hatenablog.com/entry/2015/08/27/070000">JSライブラリ「…
どうも!chuckです! ついに、今日からライブラリリーディングを始めます! ライブラリリーディングとは 文字通り、プログラミングのライブラリを読むことです。JavaScriptで書かれたライブラリを読むことで、JavaScriptへの理解を深めることが目的です。 な…
どうも!chuckです。 引き続きUnderscore.jsについて勉強していきます。 Underscore.jsを学ぶ part.1 - コンパイラかく語りきchuckwebtips.hatenablog.com
どうも!chuckです。 引き続き、Underscore.jsについて学んでいきます。 Underscore.jsを学ぶ part.3 - コンパイラかく語りきchuckwebtips.hatenablog.com
どうも!chuckです。 引き続きUnderscore.jsの勉強をしていきます。 Underscore.jsを学ぶ part.3 - コンパイラかく語りきchuckwebtips.hatenablog.com
どうも!chuckです。 引き続きUnderscore.jsの勉強をしていきます。 Underscore.jsを学ぶ part.3 - コンパイラかく語りきchuckwebtips.hatenablog.com
どうも!chuckです 引き続きUnderscore.jsについて勉強していきます。 Underscore.jsを学ぶ part.2 - コンパイラかく語りきchuckwebtips.hatenablog.com
どうも!chuckです。 前回に引き続き、underscore.jsについて勉強していきます。 Underscore.jsを学ぶ part.1 - コンパイラかく語りきchuckwebtips.hatenablog.com