js进阶(1.1)函数声明

2017-12-13  本文已影响0人  slTrust

匿名函数 就是声明的时候不给名字

function(){ return 1 ;} 你声明了它 但是又不能引用到它

// function(){ return 1 ;}  匿名函数 相当于废话    会报错   你只有给了引用才能使用
//fn 记录的是函数的地址 ==>引用
var fn = function(){
    return 1;
} 
console.log(fn.name) //fn
var fn2 = fn;  //这里不是把function(){ return 1 ;} 复制给fn2 而是把地址复制给fn2
console.log(fn2.name) //fn 

具名函数

function fn3(){
    return 1;
}
console.log(fn3); //可以访问   fn3它是一个变量  作用域是整个区域

将具名函数赋值给一个变量 它的作用域就变了

var fn4 = function fn5(){return 1;}
console.log(fn4.name)  //fn5
// 这个具名函数的作用域就是他函数本身那部分  外部访问不到
// console.log(fn5) //fn5 is not defined
// console.log(fn5.name) //报错

全局作用域的函数 赋值给变量他的作用域不受影响

function fn6(){return 1;}
var fn7 = fn6;
console.log(fn6.name) //fn6
console.log(fn7.name) //fn6
console.log(fn7) //function fn6(){return 1;}

箭头函数

var fn8 = ()=>1; //无参数 返回1
var fn9 = i=>i+1; //有参数返回   参数+1;
var fn10 =(i,j)=>{
    console.log(i)
    console.log(j)
    return i+j
} //有参数  并且函数内部有多条语句    
console.log(fn8.name) //fn8 
// 箭头函数和  匿名函数 具名函数唯一的区别就是  this
上一篇下一篇

猜你喜欢

热点阅读