Panda Noir

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

void演算子の活用法を考えてみた

考えてはみましたが、実際に使うと多分怒られます。

f:id:panda_noir:20180214153216p:plain

void演算子とは

void演算子は「与えられた式に関係なくundefinedを返す演算子」です。式を与えるのに、演算結果はundefinedで握りつぶすだけなので、特に使いみちがありません。

実際、普段はundefinedを確実に得たいケースくらいでしか使いません。

では、ほんとうにvoidはundefined生成器に過ぎないのでしょうか?

関数の返り値を握りつぶす

たとえばこんな用途に使えそうです。

const page_history = [];
const goTo = pageNumber => page_history.push(pageNumber);
goTo(0);
goTo(1);
goTo(2);
goTo(3);
console.log(goTo(4)); // 5(page_historyの要素数)が返ってくる。まぎらわしい!

この場合、goTo()は何も返さないようにしてほしいですよね。そこでvoid演算子を使えば返り値をundefinedにできます。

goTo2 = page => void page_history.push(page);
console.log(goTo2(5)); // 返り値が存在しない

他の用途

特に思いつきませんでした。「式を評価するけど、その評価値はいらないからundefinedにしたい」なんて場面ないですからね。

これでもう怖くない!npm versionで失敗しないための3つのポイント

f:id:panda_noir:20180213024939p:plain

  • npm versionコマンドの挙動がよくわからない
  • tagがズレた
  • CHANGELOG.mdをいつコミットすればいいのか
  • dist/の生成タイミング

などなど、npmパッケージのアップデートはややこしすぎます。毎回不安になるのでポイントをまとめました。

続きを読む

Webサービス同士をつないで新しいサービスを作る「IFTTT」

IFTTT(イフト)というサービスをご存知ですか?IFTTTとは「IF This Then That(Thisが起きたらThatをする)」の略です。様々なサービス同士をつなぐというシンプルなサービスです。

f:id:panda_noir:20180211140711p:plain

(2010年に誕生した比較的古いWebサービスなので取り上げるのは今更感がスゴイですが…)

続きを読む