立即执行函数一般的写法是(()=>{})()这种,看到有人这么写(0,()=>{})(),想问下后面这种写法是有什么好处吗?谢谢!
立即执行函数一般的写法是(()=>{})()这种,看到有人这么写(0,()=>{})(),想问下后面这种写法是有什么好处吗?谢谢!
你还可以写成
(true,"今天好凉快",3.1415926,["草稿纸"],new Map(),()=>{console.log("阿嚏")})()
说正经的就是js逗号运算符按顺序执行表达式,并且获得最右边表达式的值
好处?也许是能把人忽悠瘸吧(顺带执行最后一个逗号之前的表达式呗)
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读
这个不存在好与坏之分,重点是为什么这么写
在js中,函数声明会被提前,所以在函数声明后加上()立即调用会抛出语法错误
所以我们想让函数在代码的位置上才被处理,可以把函数变成函数表达式,下面举几个例子
上面的第一种写法和你问题中提到的两个写法是一样的,为什么说你提到的第二个和第一个是一样的?
因为表达式是有返回值,返回值是其结果