<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<input type="button" name="btn" id="btn" value="点我点我" />
<script type="text/javascript">
// 函数
// 定义:具有一定功能的代码段 可重用的代码段
// 相当于把一定功能的几句代码,捏合成一个单词
// 定义一个函数
// function 函数名(参数列表){
// 函数体;
// alert("1", 2, 3);
// return 返回值;
// }
// function: 函数声明标识符
// 函数名:用来表示函数,也用来调用函数
// 参数列表:由外部传入函数内部进行使用的值
// 函数体:完成函数功能的语句
// return:由函数内部往外传送的值(可有可无需要就加);
// 函数的分类
// 按形式分类:可分为四类:
// 1.无参数,无返回值
function openRoom1() {
alert("春宇最喜欢的日韩");
}
// 函数调用
// openRoom1();
// 2.无参数,有返回值
function openRoom2() {
return "春宇最喜欢的克罗地亚" + 1;
}
var str = openRoom2();
// alert(str);
// alert(openRoom2);
// 3.有参数,无返回值
// 相当于favor = 保加利亚;
function openRoom3(favor) {
alert("春宇最喜欢的" + favor);
}
// openRoom3("保加利亚");
// 4.有参数,有返回值
function openRoom4(favor, money) {
return "春宇最最喜欢的" + favor + "还花了" + money;
}
// openRoom4("欧美");
// alert(openRoom4("欧美", "$50"));
// 练习:定义一个函数求两个数的和
function sum(num1, num2) {
return Number(num1) + Number(num2);
}
var str = sum(1, 2);
// 练习:定义一个函数求两个数的商
function quotient(num1, num2) {
return num1 / num2;
}
var jieguo = quotient(10, 2);
// alert(jieguo);
// 定义一个函数求一个整数型元素数组的和
// 数组十个元素取值范围是[50 -100]
var arr = Array(10);
// var sum = 0;
for (var i = 0; i < arr.length; i++) {
arr[i] = Math.floor(Math.random() * (100 - 50) + 50);
// sum = sum + arr[i];
}
// alert(arr);
// alert(sum);
function sumarr(array1) {
var sum = 0;
for (var i = 0; i < array1.length; i++) {
sum = sum + array1[i];
}
return (sum);
}
// alert(sumarr(arr));
// 练习:求1 - n的和
// function sumN(n) {
// var sum = 0;
// for (i = 1; i <= n; i++) {
// sum = sum + i;
// }
// return (sum);
// }
// alert(sumN(100));
// return 返回值
// 一个函数中只能有一个return
// return 执行之后下面的代码不执行,函数使命结束
function sum2(num1, num2){
return Number(num1) + Number(num2);
}
var sum22 = sum2(2, 5);
// alert(sum22);
// 变量的作用域问题
// 函数内部定义的变量,只在函数内部生效,当函数执行完毕之后失效。(局部变量)
// 在外部定义的变量,可以在函数中使用。(全局变量)
var a2 = "hello";
function test1(){
var a = 10;
alert(a);
alert(a2);
}
// test1();
// a 我不认识它
// alert(a);
// 函数:按命名来分类
// 两种:命名函数与匿名函数
// 匿名函数:没有实际名字的函数
var oBtn = document.getElementById("btn");
// 1. 事件绑定
// 点击按钮(触发事件)时才调用,不触发不调用
// oBtn.onclick = function (){
// alert("点点点");
//
// }
// 2. 存于变量中
var func = function (favor){
// alert("我保存在变量中" + favor);
};
// func("萌萌哒");
// 练习:求两个数的最大值
function max1(num1, num2){
return num1 > num2 ? num1 : num2;
}
// var max = max1(5, 20);
// alert(max);
// 练习:求三个数的最大值
function max2(num1, num2, num3){
var max = num1 > num2 ? num1 : num2;
max = max > num3 ? max : num3;
return max;
// return max1(num1, num2) > num3 ? max1(num1, num2) : num3;
}
// var bestMax = max2(5, 45, 10);
// alert(bestMax);
// 求四个数的最大值
function maxFour(num1, num2, num3, num4){
// 函数的嵌套调用
return max2(num1, num2, num3) > num4 ? max2(num1, num2, num3) : num4;
}
var bestMax = maxFour(5, 45, 10, 60);
// alert(bestMax);
// 练习:产生一个给定范围内的随机数[min max][30 70]
function randoms(min, max){
var num = Math.floor(Math.random() * (max - min + 1) + min);
return num;
}
// alert(randoms(50, 100));
// 定时器
// 1. 单次计时器
// 参数1:时间结束之后执行的代码(函数)
// 参数2:时间,多久之后执行(毫秒)
// function fn1(){
// alert("春宇已经饿哭了");
// }
// var timer1 = setTimeout(fn1, 2000);
// 复合写法
// var timer2 = setTimeout(function(){
// alert("春宇已经渴哭了");
// }, 1000)
// 2. 循环定时器
// 参数1:循环执行的函数
// 参数2:时间间隔
var timer3 = setInterval(function(){
alert("循环定时器");
}, 2000)
// 关闭定时器
// clearTimeout(timer1); // 关闭单次定时器
// clearInterval(); // 关闭循环定时器
// 练习点击按钮 关闭循环定时器
oBtn.onclick = function (){
clearInterval(timer3);
}
</script>
</body>
</html>