コンパイラかく語りき

import { Fun } from 'programming'

JavaScript

JavaScriptで数値ソートする場合

JavaScriptで配列の内容をソートするとき、sort関数を使います。 ただし、sort関数はデフォルトで文字列比較を行ってしまうんですね。 数値比較をするには、引数に比較関数を渡してあげる必要があるんですね。 すっかり忘れていました。 サンプルコード gist…

配列よりもオブジェクトを使う局面があると学ぶ

競技プログラミングで初めて制限時間に引っかかりました。 対処法を考えているうちに、データ構造について1つ学びがあったのでメモします。 ちなみに、重くなった原因はユニーク判定の仕方でした。 最初に書いたコードがこちら。 gist9b15f1b88ba817838fc7 …

ダブリのある冗長な条件分岐はマッピングできると気づいた

例えば、以下のような2重のswitchがあるとします。 gist2f786f89069acd1edce1 まず、主語が何であるかによって分岐します。次に、時間帯によって分岐して、行動をalertします。 そんな2重の条件分岐があるとします。 でも、これってマッピングできるなあと…

【JavaScript】文字列としての数値を加算する関数を書いた。

今回は独自に作成した加算関数を紹介します。 これの続きです。 chuckwebtips.hatenablog.com 加算関数をつくる目的 JavaScriptのルールでは、'5' + '10'は'510'となります。 見た目的には数値なのに、クオーテーションで囲まれているために、文字列の結合が…

JavaScriptで「'6000' - ('40' + '10') * '50'」の答え分かります??

競技プログラミングで3分ほどハマった。検証が楽しくてさらに10分ほどハマった。 '6000' - ('40' + '10') * '50' の結果です。 パット見で分かりますか??? ' ' は文字列を表します。 ふつうに数値として計算したら、3500ですよね。 ところが答えは -19…

【JavaScript】splitとjoinで不純物探知

stringクラスのsplitとarrayクラスのjoinを使えば、不純物探知ができるよねというお話。 以下のコードを例に取ります。 gist2676ae0c57f3323742be 最初にhelloがたくさん並んだ文字列があります。一見、すべてhelloに見えますね。 次に、split('hello').join…

JavaScriptのsplitを自分で書くとこうなる

車輪の再発明です。 区切り文字列を配列にしたいとします。 それをいちいちfor文で走査して配列化してしまいました。でも、splitを使えば一瞬だよねというお話。 例えば、以下の変換をしたいとき、 var str = 'abc de fg'; var ary = ['abc', 'de', 'fg']; i…

JavaScriptで処理時間を計測してみよう!

最近はじめてconsoloe.time()を知りました。 この関数を使うと、JavaScriptの処理時間を計測できるようです。 使い方 以下のように使います。 gista72712964611fe8743f7 使ってみる まずは空の状態で使ってみます。nodeで実行するとこのとおり。 処理がない…

【関数型プログラミング】underscore.jsを使って高階関数を書いた

こちらの続きみたいな感じ。 chuckwebtips.hatenablog.com 続きにしては文量多い。「JavaScriptで学ぶ関数型プログラミング」の第4章をひたすら写経しました。 ので、ブログに残します。 所感 高階関数自体はそこまで難しくない。複雑でなければ。 いや、複…

君はもうJavaScriptの標準入出力を体験したか!?

僕は先日はじめて体験しました(遅い) 自分ができるようになったのを良いことに、自慢気に書いていこうと思います。JavaScriptの標準入出力について。 標準入出力って?? Web系の人にはピンと来ないかもしれませんね。 ターミナル(コマンドライン)上での…

JSファイル内でJSファイルを読み込む方法

小ネタです。 JSファイル内でJSファイルを読み込む。今までやったことなかったので、メモしときます。 今まで いままではHTMLで読み込んでました。 こんな感じですね。 これから requireという関数?を使えばよいらしいです。 こんな感じです。 同じディレク…

【関数型プログラミング】JavaScriptの高階関数を書いてみる

いまこちらの本を読んでいます。 JavaScriptで学ぶ関数型プログラミング。 まだ半分しか読んでいませんが、ちょっとメモしておきます。 今回は高階関数について。 JavaScriptには高階関数というものがあります。 書籍によると、その定義は 関数を引数にとる …

JavaScriptでさくっと高階関数をつくる

JavaScriptでつくる高階関数のうち、もっともシンプルなものを作成します。 gist507dd0644a06cc368c6a splatという関数は、引数に関数を受け取って、戻り値として関数を返します。 この時点ではまだあまり恩恵を感じませんが、これは立派な高階関数です。 と…

【JavaScript】Arrayクラスのデフォルト関数を使い倒す

どうも!chuckです。今回はJavaScriptの配列についての復習です。 JavaScriptの配列はそもそも、Arrayオブジェクトというグローバルオブジェクトを指します。 配列を定義するということは、このArrayオブジェクトのインスタンスを作るということです。 実際…

JavaScriptのセミコロン自動挿入について調べた

どうも!chuckです。 JavaScriptでは文末のセミコロンを省略できます。それはなぜかと言うと、勝手にセミコロンを自動挿入して補ってくれるためです。 ただ、最近コーディングしていて気づいたんですが、時々セミコロンを挿入してくれないんですよね。シンタ…

自作JavaScriptプラグイン改修 ~即時関数をつかってグローバル汚染を防ぐ~

どうも!chuckです。 JSのプラグインを開発しましたので、改修します。 chuckwebtips.hatenablog.com github.com

JavasScriptのクロージャについておさらい

JavaScriptのクロージャについて、おさらいします。 developer.mozilla.org

JavaScriptのレキシカル変数について

どうも!chuckです。 JavaScript中級者に向けて、今日も勉強していきますよー! chuckwebtips.hatenablog.com 今回学ぶのは、レキシカル変数について。クロージャはそこそこ分かったのですが、レキシカル変数についてはわかっていなかったようです。 なので…

JSライブラリ「Underscore.js」を読んでJavaScript中級者になる! ~void, call, apply~

どうも!chuckです。 引き続きUnderscore.jsのコードを読んでいきます。 chuckwebtips.hatenablog.com ちなみに、現在100行まで読んだようです。ただし全部で1600行あるので先は長いですね…。

JSライブラリ「Underscore.js」を読んでJavaScript中級者になる! ~アンダースコアをグローバルオブジェクトとしてセットする~

どうも!chuckです。 Underscore.jsを読んでいきます。 chuckwebtips.hatenablog.com

データ型の変換がすぐ分かる!JavaScriptプラグインを自作しました

どうも!chuckです。 前々からやりたかったのですが、ついにJavaScriptプラグインを自作しました。なので記録します。と言ってもすごくカンタンなプラグインですがw

JSライブラリ「Underscore.js」を読んでJavaScript中級者になる! ~コンストラクタを利用してthisの値を操作する~

どうも、chuckです。引き続き、Underscore.jsを読んでいきます。 JSライブラリ「Underscore.js」を読んでJavaScript中級者になる! ~プロトタイプとプロパティ~ - コンパイラかく語りきchuckwebtips.hatenablog.com

JSライブラリ「Underscore.js」を読んでJavaScript中級者になる! ~プロトタイプとプロパティ~

どうも!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ライブラリ「…

JSライブラリ「Underscore.js」を読んでJavaScript中級者になる! ~グローバルオブジェクトのセット~

どうも!chuckです! ついに、今日からライブラリリーディングを始めます! ライブラリリーディングとは 文字通り、プログラミングのライブラリを読むことです。JavaScriptで書かれたライブラリを読むことで、JavaScriptへの理解を深めることが目的です。 な…

Underscore.jsを学ぶ part.7

どうも!chuckです。 引き続きUnderscore.jsについて勉強していきます。 Underscore.jsを学ぶ part.1 - コンパイラかく語りきchuckwebtips.hatenablog.com

Underscore.jsを学ぶ part.6

どうも!chuckです。 引き続き、Underscore.jsについて学んでいきます。 Underscore.jsを学ぶ part.3 - コンパイラかく語りきchuckwebtips.hatenablog.com

Underscore.jsを学ぶ part.5

どうも!chuckです。 引き続きUnderscore.jsの勉強をしていきます。 Underscore.jsを学ぶ part.3 - コンパイラかく語りきchuckwebtips.hatenablog.com

Underscore.jsを学ぶ part.4

どうも!chuckです。 引き続きUnderscore.jsの勉強をしていきます。 Underscore.jsを学ぶ part.3 - コンパイラかく語りきchuckwebtips.hatenablog.com

Underscore.jsを学ぶ part.3

どうも!chuckです 引き続きUnderscore.jsについて勉強していきます。 Underscore.jsを学ぶ part.2 - コンパイラかく語りきchuckwebtips.hatenablog.com

Underscore.jsを学ぶ part.2

どうも!chuckです。 前回に引き続き、underscore.jsについて勉強していきます。 Underscore.jsを学ぶ part.1 - コンパイラかく語りきchuckwebtips.hatenablog.com