こんにちは。プログラマ定年を迎えたのであとは悠々自適に日々過ごそうと思ってるはせがわです。 JavaScriptで記号プログラミングを行う基本的な取り組を説明します。 jjencodeなどで使っているテクニックです。 まず最初は数字の作り方。 +[] // 空の配列にプラス演算子で数値の 0 ~[] // 空の配列にビット反転で -1 ~{} // 空のオブジェクトにビット反転で -1 -~[] // 空の配列にビット反転で-1、-1に単項マイナスで +1 -~-~[] // +1 にビット反転で -2、-2 に単項マイナスで +2 このように、空の配列や空のオブジェクトに数値用の演算子を適用することで、任意の数値を記号だけで生成することができます。 次に文字の作り方。 ![] // 空の配列に論理否定で false !![] // 空の配列に論理否定を2回で true (![]+"")
![記号だけのJavaScriptプログラミングの基本原理 - Articles Advent Calendar 2010 Sym](https://cdn-ak-scissors.b.st-hatena.com/image/square/6a4d3bb7bf1e6763bae36d99dda88ceb84b19a48/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fkfly8%2Fimage%2Fupload%2Fl_text%3ANotoSansJP-Black.otf_50_bold%3A%25E8%25A8%2598%25E5%258F%25B7%25E3%2581%25A0%25E3%2581%2591%25E3%2581%25AEJavaScript%25E3%2583%2597%25E3%2583%25AD%25E3%2582%25B0%25E3%2583%25A9%25E3%2583%259F%25E3%2583%25B3%25E3%2582%25B0%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E5%258E%259F%25E7%2590%2586%2Cco_rgb%3A000000%2Cw_900%2Cc_fit%2F%2Fv1601626948%2Fog-perl-users-jp.png)