Web开发及人机交互导论 实验九 JavaScript基础

简介: Web开发及人机交互导论 实验九 JavaScript基础

一、实验目的


理解JavaScript脚本放置与运行的方法。

掌握JavaScript基本构成和基础语法。

掌握自定义函数定义与引用。


二、实验环境


Windows10系统下的H Builder X


三、实验步骤


项目一:改变网页字号大小


4b13f1f333704986952032fa07f02d52.png

本实验中通过利用JavaScript来实现对网页字号大小的改变

1、建立网页基本格式:

353161369abe4771a784dee5c7743ca4.png


2、在head中定义所需的style:

将标题加粗,并给文字以灰色背景阴影。


71c2d1d1355a49a195c841de7f616564.png

3、定义函数:

此处通过对函数的定义,实现了对字体大小的修改。


c9ca30d3380942cdac932b410c1577af.png


4、编写body内容

在body中编写内容,并使用链接调用已编写好的函数从而实现对字体大小的改变

0fa12ff6baff47c0a916e8c719724a19.png

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>项目一</title>
  <style>
    #div1 {
      text-align: center;
      font-size: 16px;
    }
    #content {
      font-size: 12px;
      line-height: 2em;
      padding: 10px;
      background-color: #C0C0C0;
      color: black;
      border: 2px groove #FCFF57;
    }
    p {
      text-indent: 2em;
    }
  </style>
  <script type="text/javascript">
    function $(id) { return document.getElementById(id); }
    function setFont(size) {
      $("content").style.fontSize = size;
    }
  </script>
</head>
<body>
  <h2 align="center">用JavaScript改变新闻网页中的字号</h2>
  <div id="div1">选择字号【 <a href="javascript:setFont('12px')">小</a>
    <a href="#" onclick="javascript:setFont('18px')">中</a>
    <a href="#" onclick="javascript:setFont('24px')">大</a>】
  </div>
  <div id="content">
    <p>JavaScript是一种能让我们的网页更加生动活泼的程序语言,也是目前网页设计中
      最容易学又最方便的语言,我们利用JavaScript可以轻易地做出亲切的欢迎讯息、
            漂亮的数字钟、有广告效果的跑马灯还可以显示浏览器停留的时间,这些特殊效果
            可以提高网页的可观性。
    </p>
  </div>
</body>
</html>


选择字号为“小”:

52a6f9947068444d832f3da3b47e99fb.png选择字号为“中”:


bfccf5ae3f364a7497407cf5e2dbe032.png

选择字号为“大”:

49ac0953247247d0ba1a722d0824fc8f.png

项目二:求圆面积


bc3b210e0c63418bb0ef766b563952f8.png

1、建立网页基本格式:


81b5e7fd8c264147ad4aeb3fa1a9a1e5.png


2、在head中定义所需的style:

在此处实现对整个窗口及窗口中文字的定义


53422c8f1788447baecfdd0899f87bbf.png


3、使用JavaScript编写函数:

由于要实现清屏和计算两个功能,则要编写两个函数,其中第一个函数实现了对圆面积的计算功能,获取输入的半径之后在textarea中写入计算的结果

清屏函数则是将两个id中输入框的内容写为空


9b1cb055b1c4461ab5095f97a65378c6.png


4、编写body

此处使用前面定义好的函数对圆的面积进行计算:

1fd2a330efd9466689e88ec6efbd4d41.png

5、完整源码及展示效果:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>项目二</title>
    <style type="text/css">
      .circle {
        border: 5px solid #FF6A6A;
        background: #ADD8E6;
        width: 500px;
        height: 300px;
        text-align: center;
      }
      h3 {
        text-align: center;
        margin-top: 40px;
      }
      p {
        margin: 20px 110px;
      }
      .button {
        width: 250px;
        height: 30px;
        margin: 40px 110px;
      }
      .button1 {
        width: 50px;
        margin-left: 50px;
      }
      .button2 {
        width: 50px;
        margin-left: 40px;
      }
    </style>
  <script type="text/javascript">
    function show() {
      var radius = parseFloat(document.getElementById("radiustext").value);
      var area = 3.14 * radius * radius;
      console.log(area);
      document.getElementById("areatext").value = area;
      console.log(document.getElementById("areatext").value);
      return;
    };
    function reset() {
      document.getElementById("radiustext").value = "";
      document.getElementById("areatext").value = "";
      return;
    };
  </script>
</head>
<body>
  <form class="circle" id="form1" name="form1" method="post" align="center" rules="all">
    <h3>计算圆的面积</h3><br>
    <p>输入半径:<input type="text" id="radiustext" name="radiustext"></p>
    <p>圆的面积:<input type="text" id="areatext" name="areatext" readonly="readonly"></p>
    <div class="button">
      <a href="#" onclick="show();return false;"><input class="button1" type="button" value="计算"></a>
      <a href="#" onclick="reset();"><input class="button2" type="button" value="清空"></a>
    </div>
  </form>
</body>
</html>

展示效果:

1、未使用时:


e7c34c8dd8e84f77ab4b559019271c1e.png

2、输入数值并运行:



cd53ca2064b14541bb8a7babb1256adc.png

项目三:消息对话框使用

d9dba52fa5534718a43bc474a9d310df.png

本项目需使用JavaScript脚本编程并事件调用自定义函数inputName()。使用JavaScript消息对话框语法,并根据用户的选择进行相关代码是编写。

1、建立网页基本格式


4548917f8d3b4f8baff404cf2291289f.png

2、在head中定义所需的style:

在此处实现对整个窗口及窗口中文字的定义,需要注意的是此处使用了域标记。

acd218fea00d46b8ae1b84e90ae6e7ab.png

3.编写body

此处先对表单进行编写,并使用inputName进行输入,再对JavaScript进行编写

6485d354d6ca45a3958a67da401c78c4.png

此处即定义JavaScript,通过编写inputName函数来实现姓名的回显及错误信息提示。


e226ec0358ed47f0afb2fe3a22bb043b.png


4.完整源代码及展示效果:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>项目三</title>
    <style type="text/css">
        fieldset {
            background: #99ff99;
            border: 8px ridge #3333cc;
            width: 300px;
            height: 150px;
        }
        legend {
            color: #0000cc;
        }
        form {
            margin: 20px;
            padding: 20px;
        }
    </style>
</head>
<body>
    <fieldset>
        <legend>
            消息框函数
        </legend>
        <form method="POST" action="">
            你的姓名:<input type="text" name="" id="name1" maxlength="10" readonly><br><br>
            &nbsp;&nbsp;&nbsp;&nbsp;
            <input type="button" value="输入姓名" onclick="inputName();">
            <input type="reset" name="clear" value="清空">
        </form>
        <script type="text/javascript">
            function inputName() {
                var name = prompt("请输入你的姓名:", "你好!");
                if (name != null) {
                    alert("你的姓名是:" + name);
                    document.getElementById("name1").value = name;
                } else {
                    alert("请你输入姓名!")
                }
            }
        </script>
    </fieldset>
</body>
</html>

运行结果:

未输入时:

675de2ec72ec4c748d31fc457d3f67b9.png

点击输入姓名按钮,此时弹出对话框:


1bf573e81fad4093b2275579802f6c97.png

点击确定后弹出确认窗口并回显:

e8e2d6421aad487fb6012317e4707392.pnge399daca5f49410aa3364e9e108dbde8.png

如果未输入或输入空白,则弹出错误信息提示:


cf7a9e305143463385a37e3e42a970de.png

点击清空按钮,可以清除内容,并恢复初始状态:


d91a19c03d5849eabe8371009593ecd6.png

项目四:消息对话框使用

1ec86c5dd7cc4057bcf1a7cd902f37a5.png

本项目需要使用6个JavaScript系统内部函数来进行实验。

1、建立网页基本格式


507e94e9c73c4303b98b3cc5647d6937.png


2、在head中定义所需的style:

设置背景,小标题及字体。

9a5a075419304968ab6b56857ab20923.png


3.编写body

每个题头为一个小标题,下面仅以第一个为例进行展示,其余几个与所展示任务相同


85d5646e1d594827845a3049370456a6.png

4.全部源代码及运行结果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>项目四</title>
    <style type="text/css">
        div {
            background: #000099;
            color: white;
            width: 800px;
            font-size: 20px;
            font-weight: bolder;
            /* text-align: center */
        }
        h4 {
            text-align: center;
        }
        b {
            color: red;
            font-size: 18px;
        }
    </style>
</head>
<body>
    <div>
        <h4>系统函数使用</h4>
        <b>1.eval("字符串")<br></b>
        <script type="text/javascript">
            var rel = eval("1000+3/5");
            document.write("  " + "1000+3/5=" + rel);
            document.write("<br />");
            document.write("  " + "x=10,y=20,x*y=");
            eval("x=10;y=20;document.write(x*y)");
            document.write("<br/>  2+2=" + eval("2+2"));
            document.write("<br />");
            var x = 10;
            document.write("  " + "x=10,x+17=" + eval(x + 17));
            document.write("<br />");
        </script>
        <b>2.escape("字符串")<br></b>
        <script type="text/javascript">
            document.write("  " + "escape('&')=" + escape("&"));
            document.write("<br/>");
            result = escape("  " + "my name is 张华");
            document.write("  " + "escape('my name is 张华')=" + result);
            document.write("<br/>");
        </script>
        <b>3.unecspe(string)<br></b>
        <script type="text/javascript">
            document.write("  " + "unescape('%26')=" + unescape("%26"));
            document.write("<br/>");
            result = unescape("  " + "my%20name%20is%20%u5F20%u534E ");
            document.write("  " + "unescape('my%20name%20is%20%u5F20%u534E')=" + result);
            document.write("<br/>");
        </script>
        <b>4.parseFloat(string)<br></b>
        <script type="text/javascript">
            document.write("  " + "parseFloat('3.14')=" + parseFloat("3.14"));
            document.write("<br />")
            document.write("  " + "parseFloat('314e-2')=" + parseFloat("314e-2"));
            document.write("<br />")
            document.write("  " + "parseFloat('3.14ab')=" + parseFloat("3.14ab"));
            document.write("<br />")
            document.write("  " + "parseFloat('FF2')=" + parseFloat("FF2"));
            document.write("<br />")
        </script>
        <b>5.parseInt(numberstring,radix)<br></b>
        <script type="text/javascript">
            document.write("  " + "32:" + parseInt("32"));
            document.write("<br />")
            document.write("  " + "032:" + parseInt("032"));
            document.write("<br />")
            document.write("  " + "0x32:" + parseInt("0x32"));
            document.write("<br />")
            document.write("  " + "parseInt('15*3',10)=" + parseInt("15*3", 10))
            document.write("<br />")
        </script>
        <b>6.isNaN()<br></b>
        <script type="text/javascript">
            document.write("  " + "isNaN(\"5454g\")=" + isNaN("5454g"));
            document.write("<br />")
            document.write("  " + "isNaN(\"789\")=" + isNaN("789"));
            document.write("<br />")
        </script>
    </div>
</body>
</html>

2b9204e21f8b410db81c581c98f86726.png


四、结果与分析


以上四个实验项目的结果完全符合预期,JavaScript程序代码编写及CSS样式编写完全正确。


五、心得体会


通过对JavaScript基础的实验,我理解了JavaScript脚本放置与运行的方法,掌握了JavaScript基本构成和基础语法,掌握了自定义函数定义与引用。此外也学会使用域标记<fieldset>和域标题标记<legend>,通过样式设置域标记的样式

JavaScript作为一种脚本语言,在HTML编程过程中常常起到了锦上添花的作用,很多动画,消息弹出,人机交互,很多都可以通过JavaScript来实现,而对JavaScript的充分利用,更是大大的提高了页面的交互性。使得简单的HTML页面变得不简单。

相关文章
|
3月前
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
73 1
|
6天前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
25 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
2月前
|
Web App开发 JavaScript 前端开发
Node.js开发
Node.js开发
78 13
|
3月前
|
存储 JavaScript 前端开发
深入浅出Node.js后端开发
在数字化时代的浪潮中,后端开发作为连接用户与数据的桥梁,扮演着至关重要的角色。本文将以Node.js为例,深入探讨其背后的哲学思想、核心特性以及在实际项目中的应用,旨在为读者揭示Node.js如何优雅地处理高并发请求,并通过实践案例加深理解。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和思考。
|
3月前
|
Web App开发 开发框架 JavaScript
深入浅出Node.js后端开发
本文将带你领略Node.js的魅力,从基础概念到实践应用,一步步深入理解并掌握Node.js在后端开发中的运用。我们将通过实例学习如何搭建一个基本的Web服务,探讨Node.js的事件驱动和非阻塞I/O模型,以及如何利用其强大的生态系统进行高效的后端开发。无论你是前端开发者还是后端新手,这篇文章都会为你打开一扇通往全栈开发的大门。
|
3月前
|
Web App开发 开发框架 JavaScript
深入浅出Node.js后端开发
在这篇文章中,我们将一起探索Node.js的奇妙世界。无论你是刚接触后端开发的新手,还是希望深化理解的老手,这篇文章都适合你。我们将从基础概念开始,逐步深入到实际应用,最后通过一个代码示例来巩固所学知识。让我们一起开启这段旅程吧!
|
2月前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
本文将带领读者从零基础开始,一步步深入到Node.js后端开发的精髓。我们将通过通俗易懂的语言和实际代码示例,探索Node.js的强大功能及其在现代Web开发中的应用。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的见解和技巧,让你的后端开发技能更上一层楼。
|
3月前
|
JavaScript 前端开发 API
深入理解Node.js事件循环及其在后端开发中的应用
本文旨在揭示Node.js的核心特性之一——事件循环,并探讨其对后端开发实践的深远影响。通过剖析事件循环的工作原理和关键组件,我们不仅能够更好地理解Node.js的非阻塞I/O模型,还能学会如何优化我们的后端应用以提高性能和响应能力。文章将结合实例分析事件循环在处理大量并发请求时的优势,以及如何避免常见的编程陷阱,从而为读者提供从理论到实践的全面指导。
|
3月前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
本文将带你走进Node.js的世界,从基础到进阶,逐步解析Node.js在后端开发中的应用。我们将通过实例来理解Node.js的异步特性、事件驱动模型以及如何利用它处理高并发请求。此外,文章还会介绍如何搭建一个基本的Node.js服务器,并探讨如何利用现代前端框架与Node.js进行交互,实现全栈式开发。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和深入的理解。
87 4
|
3月前
|
JavaScript
使用Node.js创建一个简单的Web服务器
使用Node.js创建一个简单的Web服务器

热门文章

最新文章

  • 1
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    24
  • 2
    Node.js 中实现多任务下载的并发控制策略
    32
  • 3
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    25
  • 4
    【JavaScript】深入理解 let、var 和 const
    48
  • 5
    【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
    44
  • 6
    【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
    53
  • 7
    【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
    55
  • 8
    如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
    71
  • 9
    【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
    55
  • 10
    JavaWeb JavaScript ③ JS的流程控制和函数
    62