Js函数

1.函数的简介

与java不同,函数里面可以声明函数。

2.函数的参数

函数的参数包括形参和实参

fuction sum(a,b){
console.log(a+b);
};

注意:
a.调用函数的解析器不会检查实参的类型,实参的函数可以是任意数据类型,所以如果有可能请对传入实参的类型进行检查。如

sum12);

控制台将会打印结果:3

sum(123,"hello")

控制台将会打印结果:”123hello”

b.调用函数的解析器不会检查实参的个数,多余的参数将不会被赋值,如果实参数量少于形参数量,则没有对应实参的形参是undefined。如

sum2;//a=2,b=undefined

控制台将会打印结果:undefined

3.函数的返回值

function sum(a,b,c){
   var result=a+b+c;
   return result;
}

通过一个var来获得,返回的是什么类型,var变量获得的就是什么类型

var r=sum(3,2,5);
console.log(r)

控制台打印结果:10
注意:函数里return语句后面的语句都不再执行,不写return语句或者只写“return;“,r得到的结果都是undefined。

4.函数的实参可以是任意值的深入理解

函数的实参还可以传入”对象“,”方法“,”方法对象“
例如:

var obj={
    name:"kjs",
    age:12
};
function fun(o){
  console.log(obj.name);
  return obj.name;
}
function fun2(o){
   //如果传进来的是方法
   if(typeof o==Function){
      o(obj);
   }
};
fun(obj);//fun2方法可以直接使用obj这个对象
fun2(fun);//fun2方法可以直接使用fun这个方法,
fun2(fun(obj));//fun2方法可以直接使用fun这个方法返回的值,即fun(obj)等价于obj.name

5.函数嵌套的调用

function fun3(){
   function fun4(){
   }
}
var a=fun3();
a.fun4();//等价于fun3()();

6.函数调用的时机

普通函数:定义后需要写明调用时机才会被调用,如:

function fun5(a,b){
}
fun5(a,b);//此时才被调用

立即执行函数:在定义时就被调用,通常对只是用一次的匿名函数才这样使用,如:

(function fun5(a,b){
})(3,4);//相当于这种结构:(方法对象)(参数,参数)

7.函数与方法

普通的函数叫”函数“
对象属性里的函数叫做”对象的方法“

8.枚举对象的属性

使用for…in..,如:

var obj={
    name:"kjs",
    gender:"male"
}

for(var n in obj){
   console.log("属性名:"+n);
   console.log("属性值:"+obj[n]);
}

9.函数的作用域

<script></script>标签里声明的变量和函数,都是全局的,页面有一个默认的全局对象window,页面不关闭,该对象不销毁。

10.声明和初始化的时机

注意:以下都是在同一等级的作用于来说的
var声明的变量,不管在什么位置,都是在代码运行前,就声明的,而具体的赋值,就看在代码的什么位置赋值,例:

console.log(a);
var a=3;

这段代码,控制台会显示,a是undefined,而不是说a是not defined
而函数的声明,不管在什么位置,都是在代码运行前,就声明的并且创建的,例如

fun();
function fun(){
   console.log("hello");
}

虽然代码编写时,fun的调用是在声明的位置之前,但是控制台会正常执行打印,而不是报错。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值