函数相关概念,及练习
01.函数
函数——> 工具!!!!
工具:
-
重复性利用!
-
隐藏内部细节
-
选择性应用
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 + " ");
}
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,