javascript挑战编程技能-第二题:计算字符数

简介: javascript挑战编程技能-第二题:计算字符数

问题:创建一个程序,提示用户输入字符串,然后输出这个字符串以及其中包含的字符数。

要求:

1、确保输出中包含原始的字符串。

2、使用一个输出语句来构造输出。

3、使用javascript内置函数来确定字符串长度。

4、如果用户什么也没有输入,提示用户输入。

首先提一下第二点的要求,尽量把所有独立的方法构造成单独的函数,有利于后续理解函数式编程。

根据上一节课,我们知道了,在html中的输入使用input控件来实现,这节课我们依旧这么使用。

还是使用一个div作为输出控件。

接下来我们来实现这个简单的程序,代码如下:

<body>
<div>请输入一段字符:<input  id="inputString" type="text" onchange="inputChange()"></div>
<div id="errorString" style="color: red;display: none;">请在对话框中输入一段字符!</div>
<div ><span id="pointString"></span></div>
<script>
    function inputChange()
    {
        var inputString = document.getElementById("inputString").value
        var strLength = sumStringLength(inputString)
        if(strLength==0) document.getElementById("errorString").style.display="block"
        var pointString = inputString+"的字符数是"+strLength
        point(pointString,"pointString")
    }
    function sumStringLength(str)
    {
        return str.length
    }
    function point(str,elementId)
    {
        document.getElementById(elementId).innerHTML=str
    }
</script>
</body>


运行截图:

image.png

好了,到这里我们实现了题目的所有要求。

整个程序跑下来也没有任何异常。

可是我这里要说的是,这样一个程序,其实有非常多的错误。

这些错误不是指语法错误,而是指编程规范错误。

我从最开始学习c语言,我的老师就总是强调一句话:语言不是最重要的,最重要的是编程思想和编程规范。


下面是我修改后的代码,大家可以对比一下差别。

<body>
<div>请输入一段字符:<input  id="inputString" type="text" onchange="inputChange()"></div>
<div id="errorString" style="color: red;display: none;">请在对话框中输入一段字符!</div>
<div ><span id="pointString"></span></div>
<script>
    function sumStringLength(str) {
        return str.length;
    }
    function point(str,elementId) {
        document.getElementById(elementId).innerHTML=str;
    }
    function inputChange() {
        var inputString = document.getElementById("inputString").value;
        var strLength = sumStringLength(inputString);
        if(strLength==0){
            document.getElementById("errorString").style.display="block";
        }
        var pointString = inputString+"的字符数是"+strLength;
        point(pointString,"pointString");
    }
</script>
</body>



第二节课就到这里结束了。

目录
相关文章
|
28天前
|
缓存 JavaScript 前端开发
Vue.js计算属性:实现数据驱动的利器
Vue.js计算属性:实现数据驱动的利器
|
2天前
|
JSON JavaScript 前端开发
Node.js命令大全:让你的编程效率翻倍
探索Node.js常用命令!本文作者木头左带你了解文件操作:`ls`、创建/删除文件夹、复制/移动文件及读写文件内容。此外,还介绍了查看系统信息、CPU和内存详情的方法。一起提升Node.js开发效率![[1](https://mutouzuo.oss-cn-hangzhou.aliyuncs.com/my/mudouzuo1.png)]
Node.js命令大全:让你的编程效率翻倍
|
6天前
|
JavaScript 前端开发
JavaScript 计算颜色的相对亮度,并确定相应的文本颜色
JavaScript 计算颜色的相对亮度,并确定相应的文本颜色
7 0
|
16天前
|
JavaScript Java 测试技术
基于springboot+vue.js的编程训练系统附带文章和源代码设计说明文档ppt
基于springboot+vue.js的编程训练系统附带文章和源代码设计说明文档ppt
31 11
|
24天前
|
前端开发 JavaScript 数据安全/隐私保护
前端 JS 经典:零宽字符
前端 JS 经典:零宽字符
17 0
|
27天前
|
JavaScript 前端开发 流计算
使用JavaScript 中的Math对象和勾股定理公式,计算鼠标的位置与页面图片中心点的距离,根据距离对页面上的图片进行放大或缩小处理
使用JavaScript 中的Math对象和勾股定理公式,计算鼠标的位置与页面图片中心点的距离,根据距离对页面上的图片进行放大或缩小处理
|
28天前
|
JavaScript 前端开发 数据处理
掌握JavaScript中的二进制运算,提升你的编程技能!
掌握JavaScript中的二进制运算,提升你的编程技能!
|
28天前
|
存储 前端开发 JavaScript
深入了解JavaScript:声明式与命令式编程
深入了解JavaScript:声明式与命令式编程
|
28天前
|
消息中间件 存储 设计模式
JavaScript发布订阅模式:实现事件驱动编程!
JavaScript发布订阅模式:实现事件驱动编程!
|
28天前
|
JavaScript 前端开发 Java
JS编程中有哪些常见的编程“套路”或习惯
【5月更文挑战第8天】JS编程中有哪些常见的编程“套路”或习惯