这些角色在Javascript中做了什么

use*_*328 5 javascript character

我在这里查看了一段代码http://cssdeck.com/labs/bjiau4dy,我在Javascript框中看到了这个 -

!+-+-+!+-+-+!+-+-+!+-+-+!+-+-+!+-+-+!+-+-+!+-+-+!
Run Code Online (Sandbox Code Playgroud)

那是做什么的?为什么它不会在控制台中抛出错误?

谢谢!

Jos*_*ber 4

这些符号中的任何一个都会将其后面的函数转换为函数表达式,而不是函数声明。把它们全部放在一起只是为了好玩。


()如果您尝试通过在声明后面放置来调用常规函数:

function () {
    // this is a syntax error...
}();
Run Code Online (Sandbox Code Playgroud)

你会得到一个语法错误:

语法错误:意外的标记(

因为你不能调用函数声明。


所以人们通常将匿名函数括在括号中,将其变成函数表达式:

(function () {
    // this will execute immediately
}());
Run Code Online (Sandbox Code Playgroud)

您可以通过在前面添加任何这些符号来实现相同的效果:

!function () {
    // this will also execute immediately
}();
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参见此处:http ://kangax.github.com/nfe/#expr-vs-decl