什么是“!functionname()”?

时间:2011-01-26 03:02:26

标签: javascript function call operator-keyword

我正在为JS寻找一些示例代码,我找到了一些使用!function()的东西,我想知道究竟是什么感叹号?

5 个答案:

答案 0 :(得分:3)

!是布尔运算符。 !function()function()的返回值转换为boolean并返回其相反的值

答案 1 :(得分:2)

如果用“function”这个词代替函数的名称,它只是意味着“否定函数的结果”。 !表示不是。所以

!true == false

答案 2 :(得分:1)

functionname是一个表达式(可能估计为函数对象),并且使用()调用此求值的结果(函数对象),调用函数并计算返回值值。

现在,使用unary ! (not) operator取消此返回值(表达式的结果)。 !的规则为!truthy -> false!falsy -> true,其中truthyfalsy为涵盖的概念"truthy and falsy" in JavaScript

示例可以写成:!((functioname)()),但这只是愚蠢的

答案 3 :(得分:1)

试过这个:

var a = !function () {
            alert("notfun");
            return "nottestfun";
        }

alert(a);

警告:

false

,没有别的。如果您尝试运行a(),则会出现类型错误:

Uncaught TypeError: Property 'a' of object [object DOMWindow] is not a function

答案 4 :(得分:0)

这是一种否定。因此,如果function()返回一个布尔值,!会将其否定。

不确定JS如何管理命名($是合法的),所以它也可以只是函数的名称:P(我已经检查过了,看来自!以来是一个运营商,它不合法,所以可能性。)