JavaScript学习笔记(8):函数

*使用function语句定义

function getTriangle(base, height){
  return base*height/2;
}

console.log('三角形面积: '+getTriangle(5,10));

*通过function构造函数定义

var getTriangle=new Function('base','height','return base*height/2;');

console.log('Triangle area: '+getTriangle(5,10));

*使用函数字面量表示法定义

var getTriangle=function(base, height){
  return base*height/2;
};

console.log(getTriangle(5,10));

函数字面量表示法和function语句相似,但也存在一些差异:

1.function语句:直接定义函数getTriangle;

2.函数字面量:定义「function(base,height){……}」这样的匿名函数后iu,存储在变量getTriangle中。

**使用箭头函数定义(ES2015新增)

箭头函数(Arrow Function):

let getTriangle=(base, height)=>{
  return base*height/2;
};

console.log(getTriangle(5,10));

箭头函数没有关键字function,而是使用表示名字由来的=>(箭头)连接参数和函数主体。

如果主体只有一条语句,表示代码块的{}可以省略。因为语句的返回值直接视为返回值,所以return语句也可以省略。所以上面的代码也可以改写成:

let getTriangle=(base, height)=>base*height/2;

console.log(getTriangle(5,10));

如果只有一个参数,参数的括号也可以省略:

let getCircle=radius=>radius*radius*Math.PI;

console.log(getCircle(5));

如果参数是空集,括号不能省略。

let show=()=>console.log('hello');

在箭头函数中,有this的绑定功能。

定义函数需要注意:

1.函数是一种数据类型,它可以作为一个变量使用。

var getTriangle=function(base, height){
   return base*height/2;
};

console.log(getTriangle(5,10));    //这里结果=25;

getTriangle=2;
console.log(getTriangle);    //    这里的结果=2;

如果在别的编程语言中,以上的表述应该会报错,因为getTriangle只能是作为一个方法,必须为它设置参数。但是在JavaScript中,getTriangle是一个变量存在。

2.function语句声明的是静态结构。

console.log(getTriangle(5,10));

function getTriangle(base, height){
  return base*height/2;
}

在以上的语句中,如果认为定义函数即使定义变量,则第一行的语句应该会报错。因为getTriangle还没有被声明。

但是实际执行中,函数是可以正确运行的。这时因为function不是动态执行命令,而可以理解为是静态结构的关键字,简单来说就是 function语句是在解析、编译代码时注册函数的。

3. 字面量function是在运行时被解析的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值