编程就是变量与函数的结合

12002

1. 本课介绍

在上一课中,你已经初步了解的Javascript的概念和基本作用:实现网页的动态效果。

在本课中,你将深入的了解变量和函数的概念,进一步理解编程的本质。编程的本质就是将变量和函数结合起来,通过函数来操作变量,从而改变页面内容。

2. 编程就是变量与函数的结合

当我们打开网页时,页面上的某些部分可能是静态的,比如文档内容;而其他部分可能会随着用户的操作而改变,比如搜索一个关键字、填写一个表单。这种可变化的动态内容就是数据,而数据则存储在变量中。因此,我们可以将数据视为变量,变量就是数据。

通常,页面上通过“点击”来实现操作的部分就是函数,当函数对数据进行了操作,页面上显示的内容就会发生变化。函数对数据的操作分为增加、删除、修改、查询四种类型。

举例来说:用户在搜索框中输入关键词并点击搜索按钮时,页面中会显示相应的搜索结果。这里的函数就是根据用户输入的数据执行相应的操作,即查询操作。

总而言之,编程的本质其实不复杂。变量就是数据 ,函数就是操作数据的方法,把这两者组合在一起就是编程。

3. 深入了解变量与函数

变量:

变量是用于存储数据的容器。通常,我们使用var来定义一个变量,例如:

  1. var name = "John";

在上面的代码中,我们定义了一个变量 namename是变量名,在之后的代码中,你可以使用name来代表这个变量,比如,你可以在弹窗中使用name变量来代表要显示的名字:

  1. alert("你好,"+ name);

变量都有不同的数据类型,例如:数字(Number)、字符串(String)、布尔值(Boolean)等等。不同数据类型的变量,有不同的定义方式和使用方法。你可以阅读菜鸟教程上的相关文档 来学习如何使用数据类型。

函数:

函数是操作变量里面数据的一段代码。我们通常用function来定义一个函数,例如:

  1. function myFunction(y) {
  2. alert(y);
  3. }

在上面的例子中,我们定义了一个叫做myFunction的函数,它的功能是显示一个弹窗,弹窗的内容由变量y决定。

  • function 是固定不变的,表明这是一个函数
  • myFunction 是函数名,函数名最好能与函数的用途有关。
  • ()表示这个函数的输入参数,参数是用来在函数内部操作中使用的变量。
  • {}大括号之间的内容,是函数内部的操作。

函数的写法:函数名:myFunction、参数:y, 和函数体:{}包住的代码。

函数还可以接受多个输入的参数,每个参数之间用逗号,分开。例如,下面这个函数add实现了一个简单的加法操作:

  1. // 定义一个函数add,用于计算两个数字的和
  2. function add(a, b) {
  3. return a + b;
  4. }

在上面的代码中,ab是两个输入的参数,add函数接收输入后,会返回ab相加的结果。那如何将这个结果显示出来呢?

我们可以创建一个变量c,通过调用add函数并传入参数12,将12相加的结果存储在变量c中,然后使用console.log(c)将计算结果打印到控制台,这样就可以将add函数的计算结果显示出来。例如:

  1. // 创建一个变量c,调用add函数并传入参数1和2,将计算结果存储在变量c中
  2. var c = add(1,2);
  3. // 输出计算结果
  4. console.log(c) // 输出:3

照着上面的例子尝试一下,把函数改成两个数相减,并把参数改成其他数字,看看计算出来的结果有什么变化。

你可以阅读菜鸟教程上的相关文档,通过在实例中操作,来更好的理解函数的参数和返回值。

4. 通过实例学习如何编程

我们已经了解了变量和函数的基本概念及用法,接下来通过下面的例子,我们再来看看变量和函数是怎样结合起来,实现编程效果的。

上一课我们在学习弹窗时,写了一段很简单的代码:最简单的Javascript:弹窗。现在我们改写这段代码,把弹窗中的文字'我是一个弹窗!' 改成一个变量 'text',看看会发生什么。

  1. 创建一个HTML文件编程实例弹窗.html,把以下这段代码,复制粘贴进这个文件里:
  1. <body>
  2. <input id="text"></input>
  3. <button onclick="myAlert()">点我</button>
  4. <script>
  5. function myAlert() {
  6. var text = document.getElementById('text').value;
  7. alert(text);
  8. }
  9. </script>
  10. </body>
  1. 保存文件,然后在浏览器里打开。在输入框里输入:“这是我的一个编程”,再点击"点我"按钮,你会看到以下的页面:

002-04-变量加函数.png

你可以尝试在输入框输入任何文字,点击"点我"按钮后,看一下弹窗中文字的变化。在这段代码中:

  • 变量 text用来存储用户在输入框中输入的文本内容。
  • 函数 myAlert() 通过 alert(text) 弹出一个对话框来显示这个文本。
  • 当点击"点我"按钮时,会触发函数 myAlert(),实现显示变量 text 的目的。

通过这个简单的实例,能够帮助你更清晰的理解:编程就是是把变量和函数结合在一起。在编程中,变量用来存储数据,函数用来执行操作和功能。

更多尝试:

  • 阅读菜鸟教程文档:JavaScript 运算符,尝试操作里面的实例,这能帮助你加深对编程的理解。

5. 项目:写一个简单的计算器

让我们继续动手,编写一个简单的计算器代码。计算器是一个直观的工具,当我们输入数字和操作符后,计算器会执行相应的操作,并展示计算结果。这个项目能够使你更加理解变量和函数的应用,特别是函数如何操作变量的过程。

先下载示例代码:简单的计算器。然后,将calculator.html文件在浏览器中打开,我们看到页面的长相如下:

jsqsl.png

这是一个动态页面,它显示出来的是一个简单的计算器,由若干按钮和一个输入框组成。其中按钮包括数字0-9以及操作符'+','-','=','C',当你用鼠标点击这些按钮,输入框则显示对应的数字及计算结果。

上一课我们学习了网页显示动态数据的原理,已经知道一个动态页面的代码是由模板和脚本两部分组成的。接下来,我们将calculator.html文件在VSCode中打开,分别看一下模板代码和脚本代码,逐步理解如何通过设置变量和函数实现计算器的功能。

  • 模板代码

我们先看模板代码。这段代码是用HTML编写的,展示了计算器的长相。为了帮助你更好的理解,你可以将下代码复制到VSCode中,并保存为mycalculator.html,然后在浏览器中打开。

  1. 简单的计算器
  2. <br>
  3. <button onclick="e()">C</button>
  4. <button onclick="d()">=</button>
  5. <input id="c">
  6. <br>
  7. <button onclick="b(1)">1</button>
  8. <button onclick="b(2)">2</button>
  9. <button onclick="b(3)">3</button>
  10. <br>
  11. <button onclick="b(4)">4</button>
  12. <button onclick="b(5)">5</button>
  13. <button onclick="b(6)">6</button>
  14. <br>
  15. <button onclick="b(7)">7</button>
  16. <button onclick="b(8)">8</button>
  17. <button onclick="b(9)">9</button>
  18. <br>
  19. <button onclick="b(0)">0</button>
  20. <button onclick="b('+')">+</button>
  21. <button onclick="b('—')">-</button>

在这段模板代码中,定义了一个输入框<input>,它的idc,以及计算器中显示的所有按钮<button>,每个按钮都对应着一个函数。 根据功能的不同,分为函数e()d()b(),我们可以这样理解:

  • 输入框 c: 一个输入框,显示输入和计算的值。

  • 函数e(): 用于清除输入框中的内容。当点击"C"按钮时,会触发这个函数。

  • 函数d(): 用于执行计算操作。当点击"="按钮时,会触发这个函数。

  • 函数b(): 用于向输入框中添加数字或运算符。当点击数字按钮或运算符按钮时,会触发这个函数,并将对应的数字或运算符作为参数传递给这个函数。

理解了模板代码,我们继续看脚本代码是如何定义函数,来操作模板代码以实现计算器功能的。

  • 脚本代码

我们再来看脚本代码。脚本代码被包在一对<script>标签中,这里面创建了一个变量 a,并定义了函数function b(x)function e() function d()。复制这段代码到mycalculator.html中,保存后用浏览器打开。

  1. <script>
  2. var a="";
  3. function b(x){
  4. a=a+x;
  5. document.getElementById("c").value=a;
  6. }
  7. function e(){
  8. a="";
  9. document.getElementById("c").value=a;
  10. }
  11. function d(){
  12. a=eval(a).toString();
  13. document.getElementById("c").value=a;
  14. }
  15. </script>

我们按照从上到下的顺序,来理解这段脚本代码中变量和函数的功能。

首先,这里创建了一个变量a,初始值为空字符串,用于存储用户输入的内容。

  1. var a="";

接着,我们来看函数function b(x)的定义:

  1. function b(x){
  2. a=a+x;
  3. document.getElementById("c").value=a;
  4. }

函数function b(x),是对模板代码中函数b()的定义,它接受一个参数 x,代表要添加到输入框中的数字或运算符。你可以这样理解它的代码:

  • a=a+x:这行代码表示将每次点击的按钮x添加到变量a中,实现了数字和运算符的累加功能。

  • document.getElementById("c").value=a: 这行代码将变量a中的内容显示在idc的输入框中,实现了数字和运算符在输入框中的显示。

这个函数的作用是实现数字和运算符在输入框中的显示。当你随意点击页面中的数字和运算符按钮,如"123+456",会看到效果如下:

jsq1.png

我们继续看函数function e()的定义:

  1. function e(){
  2. a="";
  3. document.getElementById("c").value=a;
  4. }

函数function e(),是对模板代码中函数e()的定义。你可以这样理解它的代码:

  • a="":点击"C"按钮时,变量a会被设为空字符串。

  • document.getElementById("c").value=a: 这行代码将变量a中的内容显示在idc的输入框中,达到输入框c被清空的效果。

这个函数用于清除输入框中的内容。当你随意点击页面中的数字和运算符按钮,再点击"C"按钮,会看到效果如下:

jsq2.png

最后,我们来看函数function d()的定义:

  1. function d(){
  2. a=eval(a).toString();
  3. document.getElementById("c").value=a;
  4. }

函数function d(),是对模板代码中函数d()的定义。你可以这样理解它的代码:

  • a=eval(a).toString():点击"="按钮时,就会对用户输入的内容 a 执行一段 eval(a).toString()的计算,结果会被存在变量a中。

  • document.getElementById("c").value=a:这行代码将变量a中的内容显示在idc的输入框中,达到输入框显示计算结果的效果。

这个函数用来实现计算的功能。当你随意点击页面中的数字和运算符按钮,如"123+456",再点击"="按钮,会看到效果如下:

jsq3.png

最后,我们做一个总结。在这个简单的计算器项目中,模板代码和脚本代码一共包含一个变量和三个函数,它们分别实现的功能如下:

  • 变量a负责存储输入的数据,并显示在输入框c中;

  • 函数b(x)用来显示输入框中的数字和运算符;

  • 函数e()用来清除输入框中的内容;

  • 函数d()用于实现计算功能。

通过这些变量和函数的结合,就可以通过脚本渲染出模板中计算器的基本功能,这就是一个简单的编程。

参考资料: JavaScript eval() 函数

6. 编程技巧:使用浏览器的开发者工具

编程常常会遇到代码运行不正常的情况,使用浏览器的开发者工具能帮助你找到代码错误的地方。

如果发现计算器运行不正常,可以加上一行代码console.log('a',a), 用chrome浏览器的控制台把a的结果打印出来,方便检查代码的问题。

  1. function d(){
  2. a=eval(a).toString();
  3. document.getElementById("c").value=a;
  4. console.log('a',a);
  5. }

在页面上点击右键,打开“检查”,看到报错信息。

002-04-javascript-calculate-console.png

通过控制台发现a的值没有打印出来,根据报错信息a is not defined,意思是变量a没有用var定义过,这时补充定义变量var a =""后,控制台a的值能打印出来,网页运行正常。

002-04-javascript-calculate-debug.png

console.log()能够把想查看的变量值在控制台打印出来,是检查代码常用的工具。