为什么javascript不允许没有赋值的匿名函数?
Why does javascript not allow an anonymous function with no assignment?
"Unexpected Token("从第一行抛出。为什么?
function (a,b,c) {
// code
}
Techfoobar本质上是正确的,另一种解释它的方式是FunctionDeclaration必须有一个名称,而在FunctionExpression中,名称是可选的。
两者的区别是什么?函数声明是以保留字function
开头的任何语句。所以:
function foo() {}
是函数声明。
函数表达式类似于声明,但它出现在语句中的任何地方,而不是开始,因此:
(function (){});
var x = function(){};
if (6 != function(){return 'foo';}()){}
都是函数表达式,不需要名称
因为有语法错误。你的函数没有名字
如果你想按照你的方式定义函数,你的函数要么必须有一个名字
要检查这一点,将代码粘贴到Firebug控制台中并执行它。你会得到错误
SyntaxError: function statement required a name
你可以给你的函数一个名字来纠正它。
例如:
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('');
}
相关文章:
- 将ECMAScript 6析构函数赋值(ES2015)重构为旧版本的javascript
- 将函数赋值给 javascript 中的元素
- 如何在 jQuery 中的变量中调用函数赋值
- 在 JavaScript 中将函数赋值给变量
- CoffeeScript-如何将长的析构函数赋值分解为多行
- 循环内部的jQuery mouseover()函数赋值不正确
- 从Java函数向JS/JQuery函数赋值/传递值
- 原型继承上的构造函数赋值
- 为函数赋值并在单独的按钮jquery上运行
- 在javascript中,这种函数赋值给变量是有用的
- 将非匿名函数赋值给变量
- 有没有办法使构造函数赋值更简洁(和简单)?
- 如何将函数赋值给对象
- 将函数赋值给变量并运行它自己
- 如何将返回的Javascript函数赋值给PHP变量并在SQL查询中使用
- 将已定义的函数赋值给具有一组参数的变量
- Javascript在函数赋值后未定义
- Javascript将函数赋值给现有变量
- 将构造函数赋值给某物是什么意思?
- 将php函数赋值给动态创建的对象