在函数前面加上加号代表什么意思?

7

以下是来自bootstrap.js的JS代码

/* ========================================================================
 * Bootstrap: collapse.js v3.1.1
 * http://getbootstrap.com/javascript/#collapse
 * ========================================================================
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // COLLAPSE PUBLIC CLASS DEFINITION
  // ================================
   ...
  }

我曾经在函数之前看到过“;”,以避免在函数定义之前混合代码。但是,在函数之前加上“+”符号意味着什么?这会将返回值转换为字符串吗?

4
你基本上漏掉了代码中最重要的部分,也就是最后一对括号。 - elclanrs
2个回答

10

通常与IIFE / SIFE一起使用。当您像这样使用 + 符号时,它会评估其后面的表达式,因此当您将其放入函数中时,甚至执行匿名函数,如下所示。

+function(){
    console.log("Welcome");
}()

输出

Welcome

这是另一种方法,可以通过将整个函数用括号括起来来获得相同的行为,如下所示:

(function(){
    console.log("Welcome");
}());

注意:不仅符号+,任何一元算术运算符都会得出相同的结果。


1

这被称为一元加操作符

一元加操作符位于其操作数之前,将其操作数计算出来,但如果操作数不是数字,则尝试将其转换为数字。例如,y = +x 取 x 的值并将其分配给 y;也就是说,如果 x 是 3,y 将得到值 3,而 x 仍将保留值 3;但如果 x 是字符串 "3",则 y 也将得到值 3。


3
确实如此,但这种用法与任何数字结果无关。 - user2864740

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接