JavaScript技术实验报告4

一、实验目的

掌握JavaScript函数的使用方法

理解变量的复制,基本类型值和引用类型值的不同

理解函数的参数传递时所传递的内容

理解执行环境和作用域的概念

二、预习内容及要求(要求写出预习内容)

JavaScript中的变量类型

变量复制的原理,基本类型和引用类型的不同

变量类型的检测方法

函数的使用,函数参数的用法

三、实验内容、操作过程及实验结果记录     

1.请指出下面程序运行结果,并解释原因

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>第一题</title>
</head>
<script>
    var num1=0.0,num2=0.0,sum=0.0;
    function add(num1, num2){
        sum =num1+num2;
        return sum;
    }
    var result=add(10,20);
    alert(sum);
</script>
<body>
    
</body>
</html>

 

 

因为num1和num2这两个变量没有进行先声明就使用了,应该先声明在使用。下图为改正后的代码。

<script>
    var num1=0.0,num2=0.0,sum=0.0;
    function add(num1, num2){
        sum =num1+num2;
        return sum;
    }
    var result=add(10,20);
    alert(sum);
</script>

2. 函数求阶乘。

给出一个数,利用函数直接可以求出阶乘计算结果和求出阶乘函数的和

  1. 效果如图4-1所示。

 

 

  1. 具体实现步骤如下:
  1. 定义一求数的阶乘的getJC(n)函数。
  2. 调用getJC(3),求3的阶乘。
  3. 定义一求数的阶乘累加和的getSum (n)函数。
  4. 调用getSum(3),求1!+2!+3!的阶乘的累加和。

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<script>
    var a=3,num=1,sum=0;
   function getJC(a){
     for(var i=1;i<=a;i++){
        num =(num*i);
     }
     return num;
   } 
   document.write(a+"的阶乘是:"+getJC(a)+"</br>");
   function getSum (a){
    for(var i=1;i<=a;i++){
        sum +=getJC(i);
     }
     return sum;
   }
   document.write(a+"的阶乘叠加和是:"+getSum (a)+"</br>");
</script>
<body>
</body>
</html>

3. 判断是否是闰年。

  1. 效果如图4-2,4-3所示。

 

  1. 输入年份
  2. 给出判断结果
  3. 具体实现步骤如下:
  4. 用户在prompt弹出窗口中输入一个年份。
  5. 拿到输入框值,判断该值是否输入正确。
  6. 如果输入错误,给出错误提示。
  7. 如果输入正确,进入year(n)函数,处理逻辑运算

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>判断是否是闰年</title>
</head>
<body>
<script>
    var year1=prompt("请输入一个年份:");
    if(year1>0&&year1!=null){
    if((year1%400==0)||(year1%4==0&&year1%100!=0)){
        document.write(year1+"是闰年!")
    }else{
        document.write(year1+"不是闰年!")
    }
    } else{
        alert("年份要大于0,或年份不能为空!");
    }
</script>
</body>
</html>

 

 

 

 

 

4.编写函数,计算圆的面积和周长。

  1. 效果如图4-4、4-5所示。

 

  1. 具体实现步骤如下:
  1. 定义求面积函数。
  2. 圆的面积公式:3.1415926 * r * r或者Math.PI * Math.pow(r, 2)。
  3. 调用面积函数,得出结果。
  4. 定义求周长函数。
  5. 圆的周长公式:3.1415926 * 2 * r 或者2 * Math.PI * r。
  6. 调用周长函数,得出结果。

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>计算圆的面积和周长</title>
</head>
<body>
<script>
    const PI=3.14;
    //求圆面积函数
    var r=prompt("请输入圆的半径:");
    function f1(r){
       return r*r*PI;
    }
    //求周长函数
    function f2(r){
       return r*2*PI;
    }
    document.write("半径为"+r+"的圆的周长是:"+f2(r)+"</br>");
    document.write("半径为"+r+"的圆的面积是:"+f1(r)+"</br>");
</script>
</body>
</html>

 

5. 编写函数,比较最大值:求出求两个数中的最大值;求出三个数中的最大值。

效果如图4-6所示

 

 

  1. 具体实现步骤如下:
  1. 定义getMax(n1, n2)函数,比较2个数中谁最大,返回最大值。
  2. 调用getMax(6.98,6.99)。
  3. 定义getMax1(a,b,c)函数,比较3个数中谁最大,返回最大值。
  4. 调用getMax1(40,70,10)
  5. <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>比较最大值</title>
    </head>
    <body>
    <script>
        var a,b,c,n1,n2;
     function getMax(n1, n2) {
    if(n1>n2){
        document.write(n1+"和"+n2+"相比,"+n1+"最大"+"</br>");
    }else{
        document.write(n1+"和"+n2+"相比,"+n2+"最大"+"</br>");
    }
    return 0;
     }
     function   getMax1(a,b,c){
    if(a>b){
         if(a>c){
            document.write(a+","+b+","+c+"和相比,"+a+"最大"+"</br>");
         }else{
            document.write(a+","+b+","+c+"和相比,"+c+"最大"+"</br>");
         }   
    }else if(a<b){
        if(b>c){
            document.write(a+","+b+","+c+"和相比,"+b+"最大"+"</br>");
        }else{
            document.write(a+","+b+","+c+"和相比,"+c+"最大"+"</br>");
        }
    }
    return 0;
     } 
    getMax(6.98,6.99);
    getMax1(40,70,10);
    </script>    
    </body>
    </html>

  6.  

 6. 编写函数,计算并输出k以内的最大的10个能被13或17整除的自然数之和。

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>第六题</title>
</head>
<body>
<script>
     var num=prompt("请输入一个数:");
     var sum=0;
     var count=0;
    function f(num){
     for(var i=1;i<=num;i++){
        if(i%13==0||i%17==0){
            sum +=i;
            count++;
        }
        if(count==10){
            break;
        }
     }
     return sum;
    }
    document.write(num+"以内的最大的10个能被13或17整除的自然数之和是:"+f(num));
</script>  
</body>
</html>

 7. 编写一个简单的计算器。

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>计算器</title>
</head>
<body>
<!--页面布局-->
<input type="text" id="num1" placeholder="请输入第一个数字"/>
<input type="text" id="operator" placeholder="请输入运算符">
<input type="text" id="num2" placeholder="请输入第二个数字"/>
<input type="button" onclick="count()" value="计算"/><br/>
<span>计算结果:</span><span id="result"></span>
 
<!--JavaScript-->
<script>
    function count() {
        var num1 = document.getElementById("num1").value;
        var num2 = document.getElementById("num2").value;
        var operator = document.getElementById("operator").value;
        var num = "";
        //判断输入的两个数字是否为数字,如果为数字,返回结果为false
        var num1 = parseFloat(num1);
        var num2 = parseFloat(num2);
        var isNotNumber = isNaN(num1) || isNaN(num2);
        if (!isNotNumber) {
            switch (operator) {
                case "+":
                    num = num1 + num2;
                    break;
                case "-":
                    num = num1 - num2;
                    break;
                case "*":
                    num = num1 * num2;
                    break;
                case "/":
                    if (num2 == 0) {
                        // 除数不能为0
                        alert("除数不能为0");
                    } else {
                        num = num1 / num2;
                        break;
                    }
                default:
                    alert("请输入正确的运算符!!!");
            }
            num = num.toFixed(2);
            document.getElementById("result").innerText = num;
        } else {
            alert("请输入数字!!!")
        }
    }
</script>
</body>
</html>

 

 

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Su魏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值