函数
封装代码,方便使用,减少代码冗余。通过function关键字声明。
定义:就是将具有独立功能的代码块,整合到一块然后再命名,需要的时候直接调用。
作用:提高代码的重用率,减少代码的冗余,提高代码的效率
基本语法:
function 函数名(){函数体->具有特定功能的代码块}
函数的调用:函数名();
函数名就是函数本身
定义一个函数可以调用无数次,每次调用都是相互独立的
表达式函数:
将一个匿名函数赋值给一个变量: var a = function fun(){函数体->具有特定功能的代码块};
调用:变量名() a();
变量名就是函数的本身
函数参数:
参数的基本语法:
定义函数:function fun (形参){函数体}; 形参:形式上的参数
调用函数:fun(实参); 实参:实际传入的值
一个参数正常写
多个参数,参数之间需要逗号隔开
函数的arguments(函数的参数个数不确定)
function sum(){
var total = 0 ;
for(var i = 0 ; i < arguments.length ; i ++){
total += arguments[i];
}
console.log(total);
}
sum(10,20,30);
sum(10,20,30,40,50);
函数在传入的参数个数不确定的情况下,就可以通过函数arguments来计算函数的个数,arguments他是一个集合,包含所有传递的实参,0对应的第一项,1对应的第二项,一次类推天生自带length属性,最后一 项的索引是arguments.length-1.
系统函数
parseInt(
)
parseFloat(
)
number()
自定义函数
无参函数
不带参数的函数例如fun(){
}
小括号内没有参数。
有参函数
有参函数就是小括号内有东西就是参数。传参。
为什么要参数:
当我们函数被调用后,函数体执行,而函数的执行需要外部的数据层作为支撑,这是我们在调用函数时就需要吧该内容作为参数传入该函数中。
函数的声明方法:
function 函数名(x){
函数体
}
形参和实参
x为形参
在定义函数时的参数叫做形参,形式参数。
在调用函数时传入的参数,叫做实参,实际参数。
调用的时候传入的参数叫做实参(实参可以是任意类型)
形参就是用来接收实参的数据,
定义参数时可以定义多个,每个参数之间使用逗号隔开。
在调用函数时,传入的参数可以和定义的参数个数不同,根据传入的参数依次赋值到形参,传入的实参个数多余形参的个数,多余的不显示。如果传入的实参个数小于形参的个数,将会自动显示uundefined
传入的数据是什么类型,形参收到的就是什么类型。不会自动转换。
函数体就是普通的js语句,当调用函数时所要执行的内容。
函数不被调用时函数体就不执行,只有在调用时才能运行函数体。
调用方法:函数名();
不带括号叫赋值;
匿名函数:
没有函数名字的函数称之为匿名函数
调用,1.
把匿名函数赋值给一个变量,叫匿名函数表达式
2.把匿名函数赋值给一个事件,比如Window.onlod=匿名函数。这个事件是页面加载完成事件
3.使用立即执行函数( )( )
函数的arguments属性
作用:在不确定到底传入几个参数时,就使用arguments
是一个集合,包含所有传递的实参,0对应第一项,1对应第二项,以此类推,arguments自带length属性,最后一项的索引是arguments.length-1;
function fun(){
console.log(arguments);
}
fun(); //返回值的长度为0
fun(10,20,30); //返回值的长度为3
fun(20,30,50,400,555,20); //返回值的length为6
案列:
function sum(){
var total = 0 ;
for(var i = 0 ; i < arguments.length ; i ++){
total += arguments[i] ;
}
console.log(total);
}
sum(10,20,30); //60
sum(50,100,150,200); //500
函数表达式和函数声明的区别:
如果在声明变量钱使用变量 , 得到的结果会是undefined。有这个变量但是没有赋值
所以在函数表达式使命钱使用函数会报错:名字 is not a function
使用函数声明的方式声明函数 名字和内容都被提前了, 所以可以在函数声明前调用函数
调用函数:
1.通过在js代码中直接调用函数名()的方式进行函数调用。
2.通过事件触发调用函数。
onclick单击事件
可以通过onclick这时间来调用函数,<button οnclick=“fun()”></button>
a标签也可以调用函数 <a href="javascript:fun(实参)"></a>
函数的返回值:
return
返回值的类型:任意的数据类型
作用:
1.经过return返回的值,return什么就会被接收什么,可以在被其他js代码段或其他页面接收到,然后使用
2.return只能返回一个值,想要返回多个值一般放在数组中返回。
3.终止函数的运行。return之后的代码不在运行,return执行之后,后面无论还有多少语句都不会在执行。因为之前的语句的运行结果已经被返回。
return可以终止循环,前提是循环在函数之内。循环在函数之外使用return会直接报错,因为return只能在函数之内使用。
当有多个return时,只返回第一个return,因为程序识别到第一个return时就结束运行了
函数没有return时,默认是没有定义返回值,得到的默认是undefined
变量作用域:
var声明的函数作用在
1.
全局 2.函数 3.对象 其他的地方都是全局。
在函数内部声明(使用了var关键字)的变量(局部变量),在函数外部不能访问
在函数外部声明的变量(全局变量),在函数内部可以访问;
函数调用后里面的值才会发生变化。
作用域的划分:
全局作用域:script标签以内,函数体意外称之为全局作用域
局部作用域(私有作用域):函数执行形成局部作用域
作用域特点:
全局作用域:在全局作用域下定义的变量或函数可以在任意地方使用或修改 , 在全局作用域下定义的变量或函数称之为全部变量或是全局变量
局部作用域:在局部作用域下定义的变量或函数只能在当前作用域下使用 在局部作用域下定义的变量或函数称之为私有变量或是私有函数。