[過去ログ] + JavaScript の質問用スレッド vol.93 + (1001レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
438
(9): 2011/12/23(金)21:55 ID:e7b7pxP/(2/2) AAS
>>435
サイ本を見返してみたら、
式⇒評価して値が生成されるもの
文⇒javascriptに何かをさせるもの、動的な振る舞いをするもの
というように書いてありました。

>>423の通り、()演算子や=演算子があるために式として評価されるのは分かりましたし、

a();
b();

function a(){
var a1=1;
省8
440
(3): think49 ◆bKk/qcAKuM 2011/12/23(金)22:08 ID:??? AAS
>>438
function a () {;} は関数定義(関数宣言)です。
外部リンク[html]:www2u.biglobe.ne.jp

> プログラムというのは式と文のみから成り立つ
ほぼ正解ですが、「関数定義」は特別です。詳しくは仕様書を読んでください。
外部リンク:www2u.biglobe.ne.jp

原則として、文の中に式が入り、式の中に式が入り、式の中に文は入りません。
(厳密には「文の中に式が入りうる」です。入らない場合もあります。ただし、式の中に文が入る事は私の知る限りではありません。)
関数宣言が文と区別される理由は「変数の実体化」が別処理になっている為だと考えられます。
変数宣言と比較すれば違いがわかります。
省1
441
(4): 2011/12/23(金)22:09 ID:??? AAS
>>438
その他に、関数定義ってのがあるんだよ。

んで、文の中に式文ってのがあって、式は文になれるんだけど、
この関数定義とややこしいから functionからはじまる式文は認められていない。

その例で行くと、aは関数定義だけど、bはbに関数式を代入しているってことだね。
446
(3): 2011/12/24(土)00:00 ID:??? AAS
>>438
> そうなるとfunction(){}とは何なのでしょうか?
質問の意図がよくわからないんだけど、それは関数式だよ。
447
(1): 2011/12/24(土)01:22 ID:??? AAS
>>446 を補足すると、関数定義は関数名(Identifierの部分)を省略できないので、その形だと関数式な。
>>438 の文脈だと関数定義のfunction a()の方を指して質問していると思うが。
453
(2): 438 2011/12/24(土)03:40 ID:tKfWd17z(1/2) AAS
>>440,441,442
ありがとうございます!
javascriptプログラムを構成する上で登場する要素は式・文のほかに関数定義があるんですね

式文ていうのは
外部リンク[html]:www2u.biglobe.ne.jp
にあるような、式にセミコロンつける(または改行する)ことによって式を文に変化させたものを指すのでしょうか?
例えば a = 1; であれば、「a=1」という=演算子で結ばれた代入式がセミコロンによって式文として扱われるみたいな。

というか結局「a=1」という使い方はしないので、実質的には単独の式は式文になるという感じですかね?
そうなると、文というのはプログラムの最小実行単位になる、っていうことが理解できます。

>>446
省2
480
(3): 438 2011/12/24(土)14:02 ID:tKfWd17z(2/2) AAS
>>454,456
ありがとうございます。
letは初めて知りましたが、なんとなくイメージがつかめました。

ただ、function test(){…} は関数定義というところもあれば
function文というところがあって、混乱しています。

サイ本でも
「function文は厳密には文ではありません。(略)function文はプログラムの静的な構造を定義するだけなのです」
という感じで、それを関数定義としながらも、同本の別章では
「function文は、構文上は文であり」
とか言ってるのでよく分かりません…
省10
704
(2): 438 2011/12/28(水)22:36 ID:zUA8iGxS(1) AAS
関数式と関数定義の違いを調べていたところ、このページを見つけました。
外部リンク[8B]:developer.mozilla.org

ここで以下のようなときに関数定義は関数式になると説明されています。
『関数またはスクリプト自体の「ソース要素 (source element) 」でなくなった時。「ソース要素」はスクリプトや関数本体の中で入れ子にされていない文の事です』

このソース要素というのが説明を読んでもなんだかよく分かりません。どういうものなのでしょうか?
705: 2011/12/28(水)22:51 ID:??? AAS
>>704
またその話を蒸し返すのか
>>419-428,435,438,440-442,446-447,453-454
743
(1): 438 2011/12/29(木)15:33 ID:??? AAS
>>440
あ、プラグインって言ってもブラウザの方ね
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.343s*