立即函式(IIFE)
立即执行的函式限制变数作用域无法在函式外被再次执行!!//立即函式,函式最外面加上一个小括号,并使用()执行,()在包函式的括号内外皆可//---------------------------函式宣告(function IIFE1() { console.log('立即函式')}());(function IIFE2(name) { console.log('我是'+ name)})('Tom');//--------------------------函式运算式let IIFE3 = (function () { console.log('立即函式')})();let IIFE4 = (function (name) { console.log('我是'+ name)}('Tom'));//--------------------------匿名函式(function () { console.log('立即函式')})();(function ( name) { console.log('我是'+ name)}( name));
回呼函式 (Callback Function)
以参数型态传入另一个函式的函式(一个程式执行完再去执行另一个程式,使程式能够依序执行)let doFirst = function (callback) { console.log('do first...'); callback(); // <---执行传入的doLater()}/** callback function **/let doLater = function () { console.log('do later...')}doFirst(doLater);
面试题目
以下答案将会出现什么?function a(a){ a();}function b(b){ b();}function c(c){ console.log('tom')}a(b(c))
Ans:tom,a is not a function