-1

"予期しないトークン(" 1行目からスローされました。なぜですか?

function (a,b,c) {
        // code    
    } 
4

3 に答える 3

4

Techfoobarは本質的に正しいです。これを説明する別の方法は、 FunctionDeclarationには名前が必要ですが、FunctionExpressionでは名前はオプションです。

2つの違いは何ですか?関数宣言は、予約語で始まるステートメントfunctionです。それで:

function foo() {}

関数宣言です。

関数式は宣言に似ていますが、start以外のステートメントのどこかに表示されるため、次のようになります。

(function (){});
var x = function(){};
if (6 != function(){return 'foo';}()){}

すべて関数式であり、名前は必要ありません。

于 2013-03-01T05:37:03.400 に答える
3

構文エラーがあるためです。関数に名前はありません。

関数をこれまでの方法で定義する場合は、関数に名前を付ける必要があります。

これを確認するには、Firebugコンソールにコードを貼り付けて実行します。エラーが発生します

SyntaxError:関数ステートメントには名前が必要です

関数に名前を付けることで修正できます。

例えば:

function foo(blah) {
    ...
}

グローバルスコープで定義された無名関数の場合、それを何かに割り当てるか、すぐに実行する必要があります。

すなわち

また

var x = function(blah) {
    ...
};

また

(function(blah) {
    ...
})(arguments);

そうでなければ、彼らを呼ぶことができる方法が絶対にないからです。

于 2013-03-01T05:08:56.347 に答える
0

関数ステートメントに名前がありません。で確認してくださいjslint

試す

function tdip() {
    var ts = tdip.find('>span');
    var trap = [];
    ts.contents().each(

    function () {
        if ($(this).is(':visible')) {
            if (this.nodeType == 3 && this.data.length > 0) {
                trap.push(this.data.trim());
            } else if ($(this).text && $(this).text().length > 0) {
                trap.push($(this).text().trim());
            }
        }
    });
    return trap.join('');
}
于 2013-03-01T05:12:25.403 に答える