> function () { return "abc" }()
SyntaxError: function statement requires a name
如果你添加上函数名,还会得到一个语法错误(函数声明不能被理解执行):
复制代码 代码如下:
> function foo() { return "abc" }()
SyntaxError: syntax error
另外一个能让表达式在表达式上下文上被解析的办法是使用一元运算符,比如 + 或者 !.但是,和使用括号不同的是,这些操作符会改变表达式的运行结果.如果你不关心结果的话,完全可以使用:
复制代码 代码如下:
> +function () { console.log("hello") }()
hello
NaNNaN
是+作用在函数执行后的返回值undefined上的结果.
译者注:我觉的没翻译明白,所以用拙劣的水平画了张图.
原文(英文):
您可能感兴趣的文章: