《Web前端设计与开发》实验五:JavaScript 函数编程实验

一、实验内容

  1. 使用下面的方法头编写一个函数,返回一年的天数: function numberOfInAYear(year) 编写一个测试程序,显示从 2000 年到 2020 年每年的天数。
function numberOfInAYear(year) {
    if (((year % 4) == 0) && ((year % 100) != 0) || ((year % 400) == 0)) {
        years=366;
        return years;
    }
    else {
        years = 365;
        return years;
    }
}
for(var i=2000;i<=2020;i++){
    years=numberOfInAYear(i)
    document.write("第"+i+"年的天数为:"+years+"天");
    document.write("<br>")
}
  1. 一些网站对于密码具有一些规则。编写一个函数,检测字符串是否是一个 有效密码。假定密码规则如下: (1)密码必须至少 8 位字符。 (2)密码仅能包含字母和数字。 (3)密码必须包含至少两个数字。编写一个程序,提示用户输入一个密码,如果符合规则,则显示 Valid Password,否则显示 InvalidPassword。
function valid(password) {
    if (password.length >= 8) {
        for(var i=0;i<password.length;i++){
            if(password[i]>="0" && password[i]<="9"){
                j++;
            }
            if(password[i]>="a" && password[i]<="z"){
                k++;
            }
            if(password[i]>="A" && password[i]<="Z"){
            l++;
            }
        }
        if(j>=2 && j+k+l==password.length)
            return true;
        else
            return false;
        }
    else
        return false;
}
var j=k=l=0;
var password = prompt("请输入密码:");
alert(password);
if(valid(password)) {
    document.write("Valid Password");
}
else{
    document.write("Invalid Password");
}
  1. 编写一个递归函数,逆序显示一个字符串,函数头如下: functionreverseDisplay(value) 例如,reverseDisplay(“abcd”)显示的是 dcba。编写一个测试程序,提示用户 输入一个字符串,然后显示它的逆序字符。
var string = prompt("请输入一个字符串:");      //会在输入窗显示给用户看的提示信息
    alert(string);    //打印用户输入
    for (var i=string.length-1;i>=0;i--){
    document.write(string[i]);
}
  1. 使用闭包来实现在在按钮触发点击事件时改变灯泡的状态。 问题:(1)定义一个 mySwitch 表示灯泡状态,默认为 false;(2)编写 change 函数在 switch 为 false 时返回 true,mySwitch 为 true 时返回 false;(3)创建一个 tog 闭包;(4)创建 pressSwitch 函数,在其中调用闭包获取灯泡改变后的状态, 并用提示框显示在网页上;(5)在网页上创建“开关”按钮,当点击按钮时调用 pressSwitch 函数。
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>使用闭包来实现在在按钮触发点击事件时改变灯泡的状态</title>
        <script src="../js/test4.js" type="text/javascript"></script>
    </head>
    <body>
        <!--在网页上创建“开关”按钮,当点击按钮时调用pressSwitch函数-->
        <button onclick="pressSwitch()">开关</button>
    </body>
</html>
//change函数在switch为 false时返回true,mySwitch为true时返回false
function change() {
    //定义一个mySwitch表示灯泡状态,默认为 false
    mySwitch=false;
    return function (){
        if(mySwitch){
            mySwitch=false;
            return mySwitch;
        }
        else{
        mySwitch=true;
            return mySwitch;
        }
    }
}
// tog 闭包
var tog=change();
//pressSwitch函数,在其中调用闭包获取灯泡改变后的状态,并用提示框显示在网页上
function pressSwitch() {
    value=tog();
    if(value)
        alert(mySwitch);
    else
        alert(mySwitch);
}

  1. 将下面代码改写为匿名回调函数,并编写测试程序。
    在这里插入图片描述
function  func(index,callback){
    callback(index);
}
func(
    88,
    function (index){console.log(index)});
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值