我通过反复试验发现了以下内容。主要是错误。这就是愚蠢的提问时间™...
为什么Javascript not在调用不带参数的函数时会引发错误?你为什么要那个?
something // call the function but forgot about the parameters
function something()
{
// some code here
alert("Working on it!");
}
因为函数是Javascript中的一等成员-可以像任何表达式一样引用它们。例如,也许您想将其存储在另一个变量中:
function foo() { console.log('foo'); }
const anotherReferenceToFoo = foo;
anotherReferenceToFoo();
或者也许您想传递函数本身,而不调用它,例如addEventListener
:
function foo() { console.log('foo'); }
button.addEventListener('click', foo);
<button id="button">click</button>
或到setTimeout
:
function foo() { console.log('foo'); }
setTimeout(foo, 1000);
在不调用函数名的情况下对其进行引用是一项非常有用的技术。没有它,很多事情将是不可能的。
如果您有仅一行 something
,上面没有其他内容,则这不是错误,原因与未使用的表达式不是错误的原因相同。
'5';
true;
() => 'foo';
console.log('syntax is fine');
[如果要确保您不会犯此类错误,请考虑安装ESLint并强制执行no-unused-expressions规则。
在javascript中定义可变短语时如下:
var vrble
并且当定义函数和调用函数看起来像这样时:
function something()
{
// some code here
alert("Working on it!");
}
something();
如果您在函数名称后不使用括号,则编译器认为该短语是变量。对于您的情况,如果在不带括号的情况下编写“ something”,则请将短语“ something”视为变量。