Javascript(四)函数入门

函数

函数定义
1.函数又称为闭包,回调函数,构造函数 ,对象 ,数据 handler(处理程序) , 原型对象 ,方法(函数是一种特殊的对象,也能用语法糖)
2.函数就是一块代码,只有当函数被调用,事件触发时会运行函数代码块
3.函数调用是相互独立的,每一次调用它都会重新执行一次代码
eg:

function fn(){
console.log(1212)
}
fn()//1212
fn()//1212

4.函数定义的方法有三种
(1)函数声明语句

function fn() {
  	//执行的代码
}

(2)函数表达式

var fn  = function () {
  	//执行的代码
};
//函数以分号结尾,因为它实际上是一个执行语句

(3)function内置构造函数

var fn = new function("hello word!","一些代码")

实参形参
1.函数的参数分为形参和实参
形参(函数显示的参数)在函数定义时列出

function myFunction(x, y) {
  y = y || 0;
}//x,y就是形参隐式声明一个var x,y当被调用时他们的值为undefined

实参(函数隐式的参数)即真正被调用的参数值

 function fn (n)//n是形参
  {
   var a=n*n//声明一个变量a为他赋值为n*n
  console.log(a)
 }
fn(100)//100是实际调用的值式实参n=100时a=10000

实参可以是任何数据,甚至可以是函数
eg:

function fn (cb) 
{
 cb()
}//fn调用fm时 var cb=function fm(){console.log(1212)}
function fm ()
 {
 console.log(1212)
}
fn(fm)//fm函数作为一种数据被fn调用,所以最后会打印1212

实例传入一个数字n,返回它的阶乘!n

var n=2//变量n赋值为2
var re=fn(n)//re赋值为函数调用2后的结果
 console.log(re)
 function fn (num) {//隐式声明var num
var sum=1;
for(i=1;i<=num;i++)//阶乘不能为0,所以i=1
{
sum = sum*i//eg:1=1*1,1=1*2,将右边的值赋给左边的值
}
return sum
}	 

函数的声明
1.函数的声明会提前,整个代码块一起提升(变量声明只是声明提前)
2.函数的定义式不一样,不能提升
参数赋值
1.参数是按顺序赋值,传多或传少的值为undefined
2.实参传多了可以用arguments

 function fn (num1,num2) 
 {
 console.log(arguments)
 }
 fn(100,200,300)

3.实参传少了有三种解决方法

 function fn (num1=0,num2=0)//给形参num1,num2赋值为0
  {
  	console.log(num1+num2)
			 }			 
 function fn (num1,num2)
  {
  if(num1==undefined){num1=0}//当num1未定义时num1=0
 if(num2==undefined){num2=0}//当num2未定义时num2=0
  	console.log(num1+num2)
			 }		
 function fn (num1,num2)
  {
  num1=num1||0;//当num1为真是num1=num1,当num1为假时,num1=0
 num2=num2||0;//当num2为真是num1=num2,当num2为假时,num2=0
  	console.log(num1+num2)
			 }		

函数是一种引用类型的数据
1.对象中成员的数据如果是函数: 方法,如果不是函数: 属性
eg:

var obj={name:"karen",age:18,say:function fm() {console.log(1111)}}
//name:属性,age:属性,say:函数方法

2.方法只能对象访问,方法的访问者只能是方法的持有者,方法的访问者不一定是方法的持有者

var obj={name:"karen",age:18,say:function fm() {console.log(1212)}}
//name:属性,age:属性,say:函数方法
 fm()//调用fm函数
 obj["say"]()//访问obj对象里的say:function fm(){console.log(1212)},值为1212
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值