JavaScript入门笔记-函数篇


和JAVA一样用复制黏贴代码的方式不利于代码的复用,在JAVA中我们便用**函数(也叫方法)**解决问题
类似的,JS也有函数,JS的函数是一个对象

创建函数对象

var fun = new Function("代码封装在这里");  
//创建函数对象  
//封装代码以字符串的形式传给构造函数

函数中的代码会在调用时按顺序执行
这个例子很不简洁主要用于说明js的函数是一个对象

用函数声明创建函数

这是主要的函数创建方法

function fun2(){
    console.log("我们通常这样构建函数")//内部格式就和JAVA很像了
}
//----------------------------------------------------------

var  fun3 = function(){
    console.log("我们也可以这样构建函数")}

简单理解为构建一个匿名函数给变量fun3,或者定义了一个指向匿名函数的指针(因为匿名函数不能直接调用)

立即执行

有时候我们只想让一个函数执行一次,我们可以用括号包裹这个匿名函数,括号后加一个括号写入参数

(function(a,b){
    alert("立即执行函数");
})(11,22);

** 函数的返回值 **
和JAVA一样用结果可以用return ;返回(默认undefined),返回后的语句不会执行,能返回包括对象等在内任意形式



函数的参数

形参

作为弱类型语言js的形参更为简单,但同样的因为解析器不检查参数类型和数量,可能接受非法参数类型,如果你忘记参数顺序他也不会报错,但结果不正确。
语义化是一个方法更好的方法,是将参数封装。

functio sum(a,b){
    alert(a+b);
}
		sum(1,2);   //结果为3,这是正常结果
		sum(1,w1);   //结果为1w1,自动变为字符串了
		sum(1,2,333);//结果为3,他并不在意多出来的实参,并会自动丢弃
		sum(1);     //结果为NAN,因为实参不足的部分用自动用undefined填充  
//-------------------------------------------------------------------
functio sayHello(a,b){
    alert("我叫"+a"今年"+b"岁");
}
		sayHello(八云紫,18);//我叫八云紫今年18岁
		sayHello(18,八云紫);//我叫18今年八云紫岁
		//如果你忘记参数顺序他也不会报错

对象和函数

为了解决参数过多忘记顺序的问题,我们可以将参数封装成对象后传入

function sayHello(o){
    alert("我叫"+o.name "今年"+o.age"岁")
}

var obj={
    name:"斯卡哈";
    age:"18";
}

sayHello(obj);

同理我们还可以将函数作为参数传入,函数也可以成为对象的属性(此时我们称这个函数为调用对象的方法,函数和方法仅为不用位置的名称区别,本质上没有区别)

fun(play());//此处传入的是函数返回值
fun(play);//此处传入的是函数对象  
 
var ojb = {
    sayHello:function(){
        alert("hello")
    }//现在这个函数 叫方法
}
obj.sayHello();
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值