函数前的加号是什么?

时间:2014-03-11 06:08:36

标签: javascript twitter-bootstrap

这是来自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
  // ================================
   ...
  }

我见过“;”在函数之前避免在函数定义之前混合代码。但是在函数意味着什么之前“+”符号意味着什么呢?它会将返回转换为String吗?

2 个答案:

答案 0 :(得分:9)

通常与IIFE / SIFE一起使用。当你使用+这样的符号时,它会评估后面的表达式,所以当你把它放在一个函数中时,它甚至会执行一个匿名函数,比如这个

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

<强>输出

Welcome

当整个函数用括号括起来时,这是另一种获得相同行为的方法,比如

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

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

答案 1 :(得分:1)

它叫做 unary plus operator

  

一元加号运算符在其操作数之前,并计算其值   操作数但尝试将其转换为数字,如果不是   已经。例如,y = + x取x的值并将其赋值给   Ÿ;也就是说,如果x为3,y将得到值3,x将保留   价值3;但如果x是字符串“3”,y也会获得该值   3