匿名函數(shù) 就是聲明的時(shí)候不給名字
function(){ return 1 ;} 你聲明了它 但是又不能引用到它
// function(){ return 1 ;} 匿名函數(shù) 相當(dāng)于廢話 會(huì)報(bào)錯(cuò) 你只有給了引用才能使用
//fn 記錄的是函數(shù)的地址 ==>引用
var fn = function(){
return 1;
}
console.log(fn.name) //fn
var fn2 = fn; //這里不是把function(){ return 1 ;} 復(fù)制給fn2 而是把地址復(fù)制給fn2
console.log(fn2.name) //fn
具名函數(shù)
function fn3(){
return 1;
}
console.log(fn3); //可以訪問(wèn) fn3它是一個(gè)變量 作用域是整個(gè)區(qū)域
將具名函數(shù)賦值給一個(gè)變量 它的作用域就變了
var fn4 = function fn5(){return 1;}
console.log(fn4.name) //fn5
// 這個(gè)具名函數(shù)的作用域就是他函數(shù)本身那部分 外部訪問(wèn)不到
// console.log(fn5) //fn5 is not defined
// console.log(fn5.name) //報(bào)錯(cuò)
全局作用域的函數(shù) 賦值給變量他的作用域不受影響
function fn6(){return 1;}
var fn7 = fn6;
console.log(fn6.name) //fn6
console.log(fn7.name) //fn6
console.log(fn7) //function fn6(){return 1;}
箭頭函數(shù)
var fn8 = ()=>1; //無(wú)參數(shù) 返回1
var fn9 = i=>i+1; //有參數(shù)返回 參數(shù)+1;
var fn10 =(i,j)=>{
console.log(i)
console.log(j)
return i+j
} //有參數(shù) 并且函數(shù)內(nèi)部有多條語(yǔ)句
console.log(fn8.name) //fn8
// 箭頭函數(shù)和 匿名函數(shù) 具名函數(shù)唯一的區(qū)別就是 this