JSに=は不要

  • 27
    Like
  • 3
    Comment
More than 1 year has passed since last update.

代入文がなくなってJavaScriptは書けるもん。

(function(foo){
    foo();
})(function(){
    (function(x){
        (function(bar){
            bar();
            print(x + x);
        })(function(){
            (function(x){
                print(x + x);
            })(1);
        });
    })(10);
});

ふざけた外観をしてるけれど、このコードは静的スコープによって説明できる。

元ねたは@esehara変数のスコープを意識することについて、Lisp周辺とClojureのletを利用して考える - Line 1: Error: Invalid Blog('by Esehara' )。素晴らしい記事なので、みなさん読むべき。

練習問題

代入文を使った式を=なしの形式に変換してみよう。

あとがき

このコードを理解できれば、一部のプログラミング言語に存在するlet式1をマスターできたと友達に自慢できるぞ。(ES2015の仕様書をちゃんと読んでないんだけど、おそらくJavaScriptのletとは他人の空似)

脚注


  1. Lisp, ML, Haskellなどに存在します