函数介绍
函数概念:
将任意代码封装到一起,需要调用时时候进行调用执行
函数像一个盒子,盒子里面装的是代码,通过盒子名称找到盒子,执行盒子里面的代码
1.盒子封装代码
2.调用盒子执行代码
语法:function 函数名(){
//定义函数,声明函数
封装的代码
}
函数名()//函数调用语句
//定义一个名为fun的函数
function fun(){
//函数体
console.log('helloworld')
}
fun()//函数调用语句
封装函数作用
通过之前的示例进行演示
//求两个数最大值54,67的最大值
//定义为max名的函数
function max(){
var a=54
var b=67
if(a>b){
console.log(a)
}else{
console.log(b)
}
}
max()// 调用的函数
形参,实参
/*
function 函数名(m){ //函数名可定义多个
函数体
}
函数名(100)
1.形参:定义函数时,在函数名称括号中定义的变量称为形参
2.实参:使用函数调用语句,调用函数时,传入的实际参数
*/
案例:是否为闰年
function isYear(year){
if((year%4==0&&year%100!=0)||(year%400==0)){
console.log(year+'年是闰年')
}else{
console.log(year+'年不是闰年')
}
}
isYear(1004)
函数return 语句,返回值类型,函数类型,参数默认值
return 语句
作用:在函数体中,终止函数体代码向下执行,返回函数调用处
return 值
function fn(){
console.log(1111)
var i=0
return// 代码到此处结束
console.log('i',i)
}
fn()
//函数返回值
function fn1(){
console.log('fn')
return 100//返回函数值100
}
console.log(fn1())
函数类型
根据函数参数和返回值,分为四类
1.无参返回值
function fun(){
}
fun()
2.有参无返回值
function fun(m){
}
fun(100)
3.无参有返回值
function fun(){
return 100
}
var m =fun()
4.有参有返回值
function fun(m){
return m+100
}
var a=fun(m)
参数默认值
function fun(m){
m = m || 10//函数默认值
console.log('m',m)
}
fun(100)
函数的定义方式
1.声明式定义函数
function 函数名(){
}
2.函数表达式(赋值式)
var 函数名 = function(){
}
函数名()
*/
//求两个值最大的函数
/* var getMax = function (m,n){
var max =m
if(n>max){
max=n
}
return max
}
var m1 = getMax(34,56)
console.log('最大值是'+m1) */
/*
预解析
浏览器javascript引擎解析执行javascript代码
执行JavaScript代码之前,扫描通读js代码,如果发现声明式函数
和var声明的变量,将其提前
JavaScript源代码 => 执行
预解析
1.声明式函数提前
2.var声明变量提前
注:同名情况
声明式函数优先
一定避免,函数名和变量名同名的情况
*/
练习题:百元买百鸡:用一百元钱买一百只鸡。已知公鸡5元/只,母鸡3元/只,小鸡1元/3只
function fun(a,b){
for(var x=0;x<101;x++){
for(var y=0;y<101;y++){
z=a-x-y
if((x+y+z==a)&&(5*x+3*y+z*(1/3)==b)){
console.log(x,y,z)
}
}
}
}
fun(100,100)
案例:
求所有水仙花数 水仙花数定义: 水仙花数是一个三位数,各位立方之和等于它本身,
如: 371 = 3*3*3 + 7*7*7 + 1*1*1
function fun(){
for(var a=1;a<10;a++){
for(var b=0;b<10;b++){
for(var c=0;c<10;c++){
var num=Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3)
if((a*100+b*10+c==num)&&(num>=100&&num<1000)){
console.log(num)
}
}
}
}
}
fun()