案例:水仙花数
案例:棋盘
案例:等腰三角形
案例:100以内质数
知识点:
1、全局变量 局部变量
2、定义函数的2种方式:函数声明、函数表达式
函数声明:哪里都可以 可以先调用后声明
函数表达式:只能先声明后调用
3、形参、实参
4、预解析:变量声明提前、函数声明提前
案例:用函数封装n-m数字的和
案例:用函数封装一个随机数
案例:用函数封装一个等腰三角形
案例:用函数封装一个nn乘法表
案例:简易计算机调用函数
1、水仙花数
<script>
//水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数
//水仙花是一个三位数 自幂数 abc=a*a*a+b*b*b+c*c*c
// 这里的三位数abc就是水仙花数 每一个位数都是3次幂
for(var i = 100; i<=999;i++){
var a = parseInt(i/100);
var b = parseInt(i%100/10);
var c = parseInt(i%10/1);
if(i==Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3)){
document.write(i+'<br />');
}
}
</script>
2、麦粒和棋牌
/*有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,
第二个里面放2粒,第三个里面放4,求出棋盘上放的所有芝麻的重量*/
//分析:
/*
方格: 1 2 3 4 ...64
麦粒数: 1 2 4 8 ...+ 2的63次方 = 2的64次方-1
*/
var sum = 0;
for (var i =1; i<=64; i++){
sum+=Math.pow(2,i-1);
}
document.write('麦粒数是:'+sum*0.00001);
3、等腰三角形
// 等腰三角形:外层循环换行;内层循环输出*及空格
for(var i = 1; i<=5; i++){
for(var j =i; j<=5; j++){
document.write(' ')
}
for(var k = 1; k<=i; k++){
document.write('*'+' ')
}
document.write('<br />');
}
4、100以内的质数
/*
思路:
1、一个数跟另一个数取余看是否是0
2、定义一个变量是质数
3、计数器 四个一行*/
// 100以内的质数 四个换一行
var count = 0; //定义一个变量作为计数器
for (var i = 2; i <= 100; i++) {
// 假设var flag = true是质数
var flag = true;
for (var j = 2; j < i; j++) {
if (i % j == 0) {
flag = false;
}
}
// 注意是== 不是赋值!!!
if (flag == true) {
document.write(i);
// 计数器换行
count++;
if (count % 4 == 0) {
document.write('<br />');
}
}
}
5、用函数封装n-m数字的和
//a是最小值 b是最大值
function sum(a,b){
var res = 0;
for (var i = a; i<=b; i++){
res+=i
}
document.write(res);
}
sum(1,100);
6、用函数封装一个随机数
function cal(min,max){
var ran = Math.round(Math.random()*(max-min))+min;
document.write(ran);
}
cal(1,10)
7、用函数封装一个等腰三角形
//外层循环换行 内层循环输出*以及空格
function star(m) {
for (var i = 1; i <= m; i++) {
// 注意j
for (var j =i; j<=m; j++) {
document.write(' ');
}
for(var k=1; k<=i;k++){
document.write('❤')
}
document.write('<br />');
}
}
star(10);
8、用函数封装一个nn乘法表
function calc(n){
for(var i = 1; i<=n; i++){
for(var j =1; j<=i;j++){
document.write(i+'*'+j+'='+i*j+' ')
}
document.write('<br />')
}
}
calc(9);
9、计算器调用函数
<input type="text" id="inp1">
<select id="sel">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
<option value="%">%</option>
</select>
<input type="text" id="inp2">
<button id="btn">=</button>
<input type="text" id="inp3">
// 1、为按钮注册点击事件
btn.onclick = function () {
//2、获取inp1 inp2的输入框的值 option的值
var num1 = inp1.value * 1;
var num2 = inp2.value * 1;
var option = sel.value;
//3、调用函数赋值给inp3
inp3.value = calc(num1, option, num2);
}
function calc(a, option, b) {
switch (option) {
case '+':
return a + b; //函数里面遇到return函数就结束
case '-':
return a - b;
case '*':
return a * b;
case '/':
return a / b;
case '%':
return a % b;
}
}