"予期しないトークン(" 1行目からスローされました。なぜですか?
function (a,b,c) {
// code
}
Techfoobarは本質的に正しいです。これを説明する別の方法は、 FunctionDeclarationには名前が必要ですが、FunctionExpressionでは名前はオプションです。
2つの違いは何ですか?関数宣言は、予約語で始まるステートメントfunction
です。それで:
function foo() {}
関数宣言です。
関数式は宣言に似ていますが、start以外のステートメントのどこかに表示されるため、次のようになります。
(function (){});
var x = function(){};
if (6 != function(){return 'foo';}()){}
すべて関数式であり、名前は必要ありません。
構文エラーがあるためです。関数に名前はありません。
関数をこれまでの方法で定義する場合は、関数に名前を付ける必要があります。
これを確認するには、Firebugコンソールにコードを貼り付けて実行します。エラーが発生します
SyntaxError:関数ステートメントには名前が必要です
関数に名前を付けることで修正できます。
例えば:
function foo(blah) {
...
}
グローバルスコープで定義された無名関数の場合、それを何かに割り当てるか、すぐに実行する必要があります。
すなわち
また
var x = function(blah) {
...
};
また
(function(blah) {
...
})(arguments);
そうでなければ、彼らを呼ぶことができる方法が絶対にないからです。
関数ステートメントに名前がありません。で確認してください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('');
}