匿名函数 function(){} 函数表达式 let a = function(){ } 函数声明 function fn(){ }
自执行函数的作用
自执行函数,即定义和调用合为一体。我们创建了一个匿名的函数,并立即执行它,由于外部无法引用它内部的变量,因此在执行完后很快就会被释放,关键是这种机制不会污染全局对象。 1.避免作用域命名污染 2.提升性能(减少了对作用域的查找) 3.避免全局命名冲突
匿名函数
let fn = function( ){ } 执行时 fn() function(){}( ) 这种匿名函数不会执行 ,这个的代码是错误的,因为Javascript将function关键字当作一个函数声明的开始,而函数声明后面不能加圆括号,如果你不显示告诉编译器,它会默认生成一个缺少名字的function,并且抛出一个语法错误,因为function声明需要一个名字。 而如果加上() 编辑器,使用一对()将函数的声明括起来,使得JS编译器不再认为这是一个函数声明,而是一个IIFE自执行函数。
第一种 ( 匿名函数 )()
// 代码加载时触发 (function(){ console.log(" 1 2 3") })()第二种 + - ! 一元操作符
// 代码加载时触发 +function(){ console.log(" 1 2 3") }() ! function (){ console.log(2) }() -function (){ console.log(2) }()