function和感叹号、小括号、一元操作符

常常在别人的代码中看见自调用函数前加感叹号,一直搞不懂是什么个意思就在网上搜。 搜到许多相关的知识点,在此稍稍的整理了一下…

首先定义函数方式有两种:

1、函数声明:
function fn() {}

2、函数表达式:
var fn = function() {};

注:构造函数
用new关键字调用。

function FunctionName() {};//函数名首字母大写
var fn = new FunctionName();

从技术上来讲,这也是一个函数表达式。

function和感叹号、小括号

通常我们调用函数的方式是

functionName();

若我们尝试在函数后加上括号,如:

function foo() {
console.log("测试数据");
}();

函数声明,如果在声明后直接加上括号调用,浏览器会报错。因为这种写法是解析器无法理解的。

而我们改为以下这种写法,就不会出现错误:

(function foo(a) {
console.log("测试数据: " + a); //输出 测试数据: 100
})(100);
或
(function foo(a) {
console.log("测试数据: " + a); //输出 测试数据: 100
}(100));  //两种方法效果一样

此处使用括号包裹定义函数体,其作用在于让一个函数声明语句变成了一个表达式

//调用执行并将返回值取反的结果(没有返回值时为undefined)赋给变量a;
var a = !(function foo(a) {
console.log("测试数据: " + a); //输出 测试数据: 100
})(100);
console.log(a);  //输出 true;

function和一元运算符

任何能将函数变成一个函数表达式的作法,都可以使解析器正确的调用定义函数。而 ! 就是其中一个,而 + 、- 、|| 等都有这样的功能。通常情况用!或()较多。其中一元操作符和取反运算符会对返回值做出计算。

var a = !(function foo(a) {
console.log("测试数据: " + a); //输出 测试数据: 100
return true;
})(100);
console.log(a);  //输出 false;

了解更多>>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值