日報 #5 - 文と式とFunction
本日の報告。
ネット上の膨大なドキュメントに、薄い一枚を加えるという発想に立てば、
あるいは実りあるブログだと言えるかもしれない。
でもその発想じゃ長続きしそうにない。
明確な理由なんてないけど。
今日の作業
1. 相変わらず新デザインモック作成中
2. 新規機能対応のサーバサイドスクリプト拡張
3. 幾つかのバグフィックス
ぶっちゃけっと、ブログに書けるような「気づき」は本日1つもなかった。
低気圧のせいかな。
AWSのSQSと連動するワーカースクリプトがデーモン上でのみ変な挙動をするのを発見したが、
別に大した示唆を含むバグじゃなかった。
強いて言えば「共同開発マジどうしていいかわかんねぇ」ってくらいで、
コレに関しては発見が1つもなくてただただ不安というだけ。
だからさっさと終わりってことにしたいが、
1つくらい何をか話したい。
じゃぁ俺がちょっと前にボンヤリ思った疑問を残して終わろう。
Javascriptについて。
JSは文(Statement)と式(Expression)で成り立っており、
文は式と文で形成され、式は識別子・演算子・リテラル値によって形成される。
ここまではまぁよい。
では例えば、変数宣言構文はhttps://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/varここに紹介されるとおり、
式(識別子)=式(任意の有効な式)
というシンタックスだ。
とても分かりやすいように見える。
ここで、jsの大きな特徴であるFunction式について考えてみる。
Function式はhttps://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/functionここにある通り、
function [name]([param1, param2, ..., paramN]) {
statements
}
こんな感じになる。
隠し条件として、function宣言から始まるとFunction文だと判定されるというものがある。
!function(…とかやってるのは、function文ではなく、function式として判定されることを期待して、
()演算子の実行対象になれるようにするためだ。
まぁそれはどうでもよい。
俺が思っている疑問は1つ。
Function式に、Statementが入ってしまっていること。
式の中に文がある。ん?ってかんじだ。
式だからevalされるんだろうと思う。
ん?文が評価されるの?実行されずに?
は?
以上。
今だ解決できていない、Function式の中のステートメント。
ま、すごい勘違いなんだろうけどなぁ。
タイフーンは嫌いだ。