函数
概念:函数就是代码块,可以多次调用,很容易实现模块化编程。
好处: 1)减少代码开发时间
2) 模块化编程
3) 可以重复使用
函数的定义:
形式1 function fn(){
// 函数体内功能代码
}
function---为声明函数的关键字,指出这是一个函数
fn ------是函数的名称,类似于永来存储函数的变量
() ------为函数的参数,多个参数用 , 隔开
{} ------放置函数体,用于执行时,所要编译的代码段
调用:
函数名();
fn() ;
//语法:
// function fn(){}
// 函数名的规则和变量一样
function fn(){
document.write('枝上柳绵吹又少,天涯何处无芳草');
}
// 函数的调用
//函数名()
fn();
函数的参数:
function fn(参数1,参数2,…,参数N){
// 函数体内功能代码
}
注:
函数有预编译(预加载)的过程,可以实现调用在前,声明再后;
1、函数名的命名规范和变量的命名规范一样
2、函数可以放在任何地方,前提必须在同一个网页中才可以调用
3、小括号里面的参数可以写多个起占位作用,可以在函数体内直接当变量使用,称之为:形参;当调用函数传递的真正的数据称之为:实参;
事件与函数的关系(了解)
函数是通过函数名来调用的
一般的函数的调用要结合”事件”来调用;
调用的方式:
方法一(通过HTML标签调用):<标签 事件=”函数名()”/>
方法二(JS调用):对象.事件=函数
例1:直接使用onclick在行内绑定函数
函数的两种创建方式:
通过关键字function声明:(声明式)
function fn(){}
通过变量赋值(匿名函数): (赋值式)
var fn = function(){};
这种方式下,虽然这个函数没有名字,但是这个函数赋值给了fn,因此通过变量fn也能调用到这个函数;
函数的返回值(return)
return是无条件退出当前方法/函数,并返回数据(注:如果没有数据返回undefined);
不仅可以返回值,也可以终止程序;
形参和实参
形参和实参都可以有多个,用逗号隔开,多个形参和实参之间必须相互一一对应;
function fn(a,b,c){ //a = 1, b = 2, c = 3
console.log(a+b+c); //6
}
fn(1,2,3);
如果形参和实参不一致:
形参的数量比实参的数量多,多出来的形参,为undefined;
形参的数量比实参的数量少,多出来的实参,传递到arguments对象中;
形参的数量与实参的数量相等,一一对应。
注: 1、形参的顺序必须和实际参数一一对应;
2、形参的个数必须和实参的个数一样多;
参数默认值:
给函数的参数设置默认值,代用函数的时候,这个参数是不用传值的;
arguments 对象
若方法里没有写参数却传入了参数,该如何拿到参数呢,答案就是arguments了,在一些插件里通常这样使用;
系统函数
注:NaN(非数字)
parseInt(data) 讲字符串转换为整数(类型为number)
document.write(parseInt('11')); // 11
Number(data) 讲字符串转换为整数(类型为number)
document.write(Number(11)); // 11
document.write(Number(11.2)); // 11.2
注:data只能是数字,否则会返回NaN(非数字)
isNaN(data) 判断data是否非数字
document.write(isNaN(11.2)); // false
document.write(isNaN('11.2sdsf')); // true
注: 1、true - 非数字,false - 是数字;
3、data只能是数字,否则返回(true)表示非数字;
parseFloat(data) - 将字符串转化为浮点数(类型为:number)
document.write(parseFloat('11sdsf')); // 11
document.write(parseFloat('sdsf11')); // NaN
注:1、首字母必须是数字,否则返回(NaN)表示非数字;
Math.random() 产生随机数
产生0-1之间的随机数,但是不包含0和1;
Math.ceil() 即向上取整
var num1 = 3.45567;
var num2 = Math.ceil(num1);
document.write(num2);
Math.floor 即向下取整
var num3 = Math.floor(num1);
document.write(num3); // 3
toFixed()保留两位小数
var num =2.446242342;
num = num.toFixed(2);
console.log(num);
或
var num5 = parseInt(num1*100)/100;
document.write(num5);
函数可以作为参数
通常,我们把作为参数传递的函数叫做回调函数
function fn1(fn){
document.write('热不热');
// 因为参数是函数,所以可以直接调用
fn();
}
var bear = function(){
alert('好热,好热,扎啤一杯');
}
fn1(bear);
注:
函数的声明方式:
有名函数 function fn(){}
匿名函数 var a = function(){}
return 返回函数的值,在哪里调用,就返回到哪里,终止函数的继续执行
形参和实参:形参和实参的位置要一一对应
参数的默认值:形参声明的时候设置默认值,调用的时候不用传.
随机数 Math.random()