函数相关概念,及练习

01.函数

函数——> 工具!!!!

工具:

  1. 重复性利用!

  2. 隐藏内部细节

  3. 选择性应用

1.函数

具有特定功能的代码块

2.函数定义的方法:

1:关键字

function 函数的名称(){

}

2:字面量写法:

var 函数名 = function(){

}

3:构造函数的写法:(构造函数)

var 函数名 = new Function("参数","执行的代码");
//var fn = new Function("","console.log(111)");

注意:

1:函数是不能自己执行的,需要调用

2:可以重复利用

3.函数的调用方法

1:事件驱动(单击、双击、滑过、离开、按键.....)

常用的事件:

鼠标事件:

单击事件: onclick

双击事件: ondbclick;

鼠标划入: onmouseover;

鼠标划出 : onmouseout;

鼠标滚轮(滚动、单击): onmousewheel;

鼠标的移动: onmousemove;

键盘:

按下某个键不松开 : onkeydown;

抬起某个键: onkeyup;

按下并抬起来: onkeypress;

输入框:

获取焦点: onfocus;

失去焦点: onblur;

改变输入框的内容: onchange;

2.自调用 函数名();

02.函数体验

1.打印多个99乘法表
function print(){
   for(var i = 1 ; i <= 9 ; i++){
       for(var k = 1 ;k <= i ; k++){
           document.write(j + " * " + i + "=" + i * j + "&nbsp;&nbsp;&nbsp;");
      }
       document.write("<br><br>");
  }
}
print();
print();
print();
2.封装一个打印5行5列表格的方法(100以内的随机数)
function printTable(){
   document.write("<table>");
   for(var i = 0 ; i < 5 ; i++){
       document.write("<tr>");
       for(var j = 0 ; j < 5 ; j++){
           document.write("<td>" + parseInt(Math.random() * 100) + "</td>");
      }
       document.write("</tr>");
  }
   document.write("</table>");
}
printTable();
printTable();
printTable();

03.参数

1.参数:

参数分为两种:形参、实参

形参:函数在定义的时候,在函数名称里面的()里面的变量,称作形参

实参:函数在定义的时候,()里面传递的值为实际参数

2.函数中参数的意义:

1:使函数功能更加灵活

2:增强了函数重复性应用

3.形参

1:在函数定义的时候,放在()里面的

2:在定义多个形参的时候,逗号隔开

3:形参完全符合变量的原理,如果只定义,接受不到赋值,返回的是undefined

4.实参

1:在函数调用的时候,()内传递的参数

2:实参和形参一一对应

1.打印名称!
function printName(userName,age,sex){
   console.log("我是" + userName +"今年" + age + "岁,性别" + "sex");
}
printName("张三",20,"男");
printName("ld",10,"男");
2.封装一个打印表格的方法( m行  n列
function printTable(m,n){
   document.write("<table>");
   for(var i = 0 ; i < m ; i++){
       document.write("<tr>");
       for(var k = 0 ; k < n ; k++){
           document.write("<td>" + parseInt(Math.random() * 10) + "</td>");
      }
       document.write("</tr>");
  }
   document.write("</table>");
}

printTable(5,5);
printTable(10,10);
printTable(10,20);

04.函数案例

导入自己封装的函数:

myApi.js
//n,m之间的随机数
function randomNum(n,m){
   return parseInt(Math.random() * (m - n + 1) + n);
}
1.写一个功能,传入一个数字,计算数字的平方。Math.pow
function num(i){
console.log(Math.pow(i,2));
}
num(3);
2.定义一个加法功能,传入一个数字,计算从1到该数字整数的和
function add(n){
   var sum = 0;
   for(var i = 1 ; i <= n ; i++){
       sum += i;
  }
   console.log(sum);
}
add(4);
3.定义一个功能,传入两个数字m,n(m<n),随机生成m-n之间的随机整数   Math.random
分析:
//打印包含3-8之间的数,包括3,和8,
//n-m是代表n到m之间,加1是为了包含8,+m是为了确定范围的最小值。
function randomNum(m,n){
   var a = parseInt(Math.random() * (n - m + 1) + m);
   console.log(a);
}
randomNum(3,8);
4.编写有一个函数,计算两个数字的和差积商
function operation(num1,num2,sign){
   switch(sign){
       case "+" : console.log(num1 + num2);
           break;
       case "-" : console.loe(num1 - num2);
           break;
       case "*" : console.log(num1 * num2);
           break;
       case "/" : console.log(num1 / num2);
           break;
       default : console.log("请重新输入.....");
  }
}
operation(3,6,"*");
operation(8,2,"/");
5.编写一个函数,判断三个数字的大小,按从小到大的顺序输出
function compare(num1,num2,num3){
   var items = 0;
   if(num1 > num2){
       items = num1;
       num1 = num2;
       num2 = items;
  }
   if(num1 > num3){
       items = num1;
       num1 = num3;
       num3 = items;
  }
   if(num2 > num3){
       items = num2;
       num2 = num3;
       num3 = items;
  }
   console.log(num1,num2,num3);
}
compare(34,59,3);
6.编写函数,判断一个字符串的内容是不是纯数字
function isNumber(str){
   if(Number(str) == str){
       console.log("数字");
  }else{
       console.log("非数字");
  }
}
isNumber("23232");
7.编写一个函数,在页面上输出一个n行m列的表格,并且放入10-100的随机数
function createTable(n,m){
   document.write("<table>");
   for(var i = 0 ; i < n ; i++){
       document.write("<tr>");
       for(j = 0 ; j < m ; j++){
           document.write("<td>" + randomNum(10,100) + "</td>");
      }
       document.write("</tr>");
  }
   document.write("</table>");
}
createTable(10,6);

05.函数的返回值

return 函数的返回值

  1. 函数一般都存在一个返回值

  2. return只能出现在函数里面

  3. return能终止程序往下执行(类比break;)

  4. 一个函数只能有一个返回值

  5. 如果函数没有写return,默认返回undefined;

eg:
function fn(num1,num2){
   var res = num1 * num2;
   return res;
}
console.log(fn(3,5));
判断一个数值是否为合格的年份:
function isYear(year){
   if(parseInt(year) != year){
       return "此数不是合格的年份1";
  }
   if(year < 0){
       return "此数不是合格的年份2";
  }
   return "合格";
}
alert(isYear(111));

总结(终止程序往下执行)

break 出现在循环和switch

continue 出现在循环里面

return 出现在函数里面

posted @ 2019-08-29 22:31  流泪的小可爱  阅读(476)  评论(0编辑  收藏  举报