Javascript 函数(){}()有效吗?
在一个Javascript编程社区中,有人问“如何声明匿名方法并立即运行它?”然后其他人回答Javascript 函数(){}()有效吗?,javascript,Javascript,在一个Javascript编程社区中,有人问“如何声明匿名方法并立即运行它?”然后其他人回答(function(){})(和(function(){}()) 回答(function(){}())的人说这是正确的,可以运行,但ideone说这是错误的,我认为这是错误的。 以下链接用于比较SpiderMonkey和Rhino。 (function(){}())在Javascript上真的正确吗 “但ideone说这是错误的” 如果您讨论的是显示的链接中的错误,那是因为您没有用分号分隔这两个示例,
(function(){})(
和(function(){}())
回答
(function(){}())
的人说这是正确的,可以运行,但ideone说这是错误的,我认为这是错误的。以下链接用于比较SpiderMonkey和Rhino。
(function(){}())
在Javascript上真的正确吗
“但ideone说这是错误的”
如果您讨论的是显示的链接中的错误,那是因为您没有用分号分隔这两个示例,因此第二个示例的外部圆括号集被解释为前一个表达式的函数调用
(function(){
print("This is what I want.")
})() // <<< no semicolon causes the error here
(function(){
print("This may be what I want.")
}())
(函数(){
打印(“这就是我想要的。”)
})()//定义“正确”。如果你的意思是如果它是有效的语法,是的(只有在括号中作为表达式括起来时)。@AndrewLi谢谢,我让他们知道了。另外,你在IDEONE上的错误是由于在两个IIFE之间省略了分号。因为您省略了分号,JavaScript看到下一个标记是(,它将另一个IIFE解释为使用回调调用前一个函数的返回值,这是错误的。