为什么会返回语法错误:
function(foo){console.log(foo)}
我希望这会返回函数的值,从而返回自身,并且不会将其赋值给任何东西,但我得到了一个"SyntaxError: expect (“
但这是可行的:
(function(foo){console.log(foo)})
请解释一下这些括号的作用。有人告诉我,括号是用来“增加可读性”的,但在这种情况下,肯定有更多的目的。
您能更详细地了解一下about ()的用法吗?假设你要将这行代码翻译成散文,()读起来会是什么样子?我也在试着向其他人描述这个概念,并需要传达它的含义,以便每个人都能理解它。我想要回答的问题是,()的意思是什么?它们有语义值吗?它是什么?
发布于 2012-10-10 18:02:16
这是因为在没有()
的情况下,function(){}
行是一个function declaration,而带有的行是一个expression。
函数声明是一种奇怪的野兽,在代码执行之前,它们在定义的作用域中到处可用,所以像这样的代码片段是有效的:
foo();
function foo() { console.log('foo'); }
https://stackoverflow.com/questions/12816654
复制相似问题