编程就是变量与函数的结合
120021. 本课介绍
在上一课中,你已经初步了解的Javascript的概念和基本作用:实现网页的动态效果。
在本课中,你将深入的了解变量和函数的概念,进一步理解编程的本质。编程的本质就是将变量和函数结合起来,通过函数来操作变量,从而改变页面内容。
2. 编程就是变量与函数的结合
当我们打开网页时,页面上的某些部分可能是静态的,比如文档内容;而其他部分可能会随着用户的操作而改变,比如搜索一个关键字、填写一个表单。这种可变化的动态内容就是数据,而数据则存储在变量中。因此,我们可以将数据视为变量,变量就是数据。
通常,页面上通过“点击”来实现操作的部分就是函数,当函数对数据进行了操作,页面上显示的内容就会发生变化。函数对数据的操作分为增加、删除、修改、查询四种类型。
举例来说:用户在搜索框中输入关键词并点击搜索按钮时,页面中会显示相应的搜索结果。这里的函数就是根据用户输入的数据执行相应的操作,即查询操作。
总而言之,编程的本质其实不复杂。变量就是数据 ,函数就是操作数据的方法,把这两者组合在一起就是编程。
3. 深入了解变量与函数
变量:
变量是用于存储数据的容器。通常,我们使用var
来定义一个变量,例如:
var name = "John";
在上面的代码中,我们定义了一个变量 name
。name
是变量名,在之后的代码中,你可以使用name
来代表这个变量,比如,你可以在弹窗中使用name
变量来代表要显示的名字:
alert("你好,"+ name);
变量都有不同的数据类型,例如:数字(Number)、字符串(String)、布尔值(Boolean)等等。不同数据类型的变量,有不同的定义方式和使用方法。你可以阅读菜鸟教程上的相关文档 来学习如何使用数据类型。
函数:
函数是操作变量里面数据的一段代码。我们通常用function
来定义一个函数,例如:
function myFunction(y) {
alert(y);
}
在上面的例子中,我们定义了一个叫做myFunction
的函数,它的功能是显示一个弹窗,弹窗的内容由变量y
决定。
function
是固定不变的,表明这是一个函数myFunction
是函数名,函数名最好能与函数的用途有关。()
表示这个函数的输入参数,参数是用来在函数内部操作中使用的变量。{}
大括号之间的内容,是函数内部的操作。
函数的写法:函数名:myFunction
、参数:y
, 和函数体:{}
包住的代码。
函数还可以接受多个输入的参数,每个参数之间用逗号,
分开。例如,下面这个函数add
实现了一个简单的加法操作:
// 定义一个函数add,用于计算两个数字的和
function add(a, b) {
return a + b;
}
在上面的代码中,a
和b
是两个输入的参数,add
函数接收输入后,会返回a
和b
相加的结果。那如何将这个结果显示出来呢?
我们可以创建一个变量c
,通过调用add
函数并传入参数1
和2
,将1
和2
相加的结果存储在变量c
中,然后使用console.log(c)
将计算结果打印到控制台,这样就可以将add
函数的计算结果显示出来。例如:
// 创建一个变量c,调用add函数并传入参数1和2,将计算结果存储在变量c中
var c = add(1,2);
// 输出计算结果
console.log(c) // 输出:3
照着上面的例子尝试一下,把函数改成两个数相减,并把参数改成其他数字,看看计算出来的结果有什么变化。
你可以阅读菜鸟教程上的相关文档,通过在实例中操作,来更好的理解函数的参数和返回值。
4. 通过实例学习如何编程
我们已经了解了变量和函数的基本概念及用法,接下来通过下面的例子,我们再来看看变量和函数是怎样结合起来,实现编程效果的。
上一课我们在学习弹窗时,写了一段很简单的代码:最简单的Javascript:弹窗。现在我们改写这段代码,把弹窗中的文字'我是一个弹窗!' 改成一个变量 'text',看看会发生什么。
- 创建一个HTML文件
编程实例弹窗.html
,把以下这段代码,复制粘贴进这个文件里:
<body>
<input id="text"></input>
<button onclick="myAlert()">点我</button>
<script>
function myAlert() {
var text = document.getElementById('text').value;
alert(text);
}
</script>
</body>
- 保存文件,然后在浏览器里打开。在输入框里输入:“这是我的一个编程”,再点击"点我"按钮,你会看到以下的页面:
你可以尝试在输入框输入任何文字,点击"点我"按钮后,看一下弹窗中文字的变化。在这段代码中:
- 变量
text
用来存储用户在输入框中输入的文本内容。 - 函数
myAlert()
通过 alert(text) 弹出一个对话框来显示这个文本。 - 当点击"点我"按钮时,会触发函数
myAlert()
,实现显示变量text
的目的。
通过这个简单的实例,能够帮助你更清晰的理解:编程就是是把变量和函数结合在一起。在编程中,变量用来存储数据,函数用来执行操作和功能。
更多尝试:
- 阅读菜鸟教程文档:JavaScript 运算符,尝试操作里面的实例,这能帮助你加深对编程的理解。
5. 项目:写一个简单的计算器
让我们继续动手,编写一个简单的计算器代码。计算器是一个直观的工具,当我们输入数字和操作符后,计算器会执行相应的操作,并展示计算结果。这个项目能够使你更加理解变量和函数的应用,特别是函数如何操作变量的过程。
先下载示例代码:简单的计算器。然后,将calculator.html
文件在浏览器中打开,我们看到页面的长相如下:
这是一个动态页面,它显示出来的是一个简单的计算器,由若干按钮和一个输入框组成。其中按钮包括数字0-9以及操作符'+','-','=','C',当你用鼠标点击这些按钮,输入框则显示对应的数字及计算结果。
上一课我们学习了网页显示动态数据的原理,已经知道一个动态页面的代码是由模板和脚本两部分组成的。接下来,我们将calculator.html
文件在VSCode中打开,分别看一下模板代码和脚本代码,逐步理解如何通过设置变量和函数实现计算器的功能。
- 模板代码
我们先看模板代码。这段代码是用HTML编写的,展示了计算器的长相。为了帮助你更好的理解,你可以将下代码复制到VSCode中,并保存为mycalculator.html
,然后在浏览器中打开。
简单的计算器
<br>
<button onclick="e()">C</button>
<button onclick="d()">=</button>
<input id="c">
<br>
<button onclick="b(1)">1</button>
<button onclick="b(2)">2</button>
<button onclick="b(3)">3</button>
<br>
<button onclick="b(4)">4</button>
<button onclick="b(5)">5</button>
<button onclick="b(6)">6</button>
<br>
<button onclick="b(7)">7</button>
<button onclick="b(8)">8</button>
<button onclick="b(9)">9</button>
<br>
<button onclick="b(0)">0</button>
<button onclick="b('+')">+</button>
<button onclick="b('—')">-</button>
在这段模板代码中,定义了一个输入框<input>
,它的id
为 c
,以及计算器中显示的所有按钮<button>
,每个按钮都对应着一个函数。 根据功能的不同,分为函数e()
,d()
,b()
,我们可以这样理解:
输入框
c
: 一个输入框,显示输入和计算的值。函数
e()
: 用于清除输入框中的内容。当点击"C"按钮时,会触发这个函数。函数
d()
: 用于执行计算操作。当点击"="按钮时,会触发这个函数。函数
b()
: 用于向输入框中添加数字或运算符。当点击数字按钮或运算符按钮时,会触发这个函数,并将对应的数字或运算符作为参数传递给这个函数。
理解了模板代码,我们继续看脚本代码是如何定义函数,来操作模板代码以实现计算器功能的。
- 脚本代码
我们再来看脚本代码。脚本代码被包在一对<script>
标签中,这里面创建了一个变量 a
,并定义了函数function b(x)
,function e()
, function d()
。复制这段代码到mycalculator.html
中,保存后用浏览器打开。
<script>
var a="";
function b(x){
a=a+x;
document.getElementById("c").value=a;
}
function e(){
a="";
document.getElementById("c").value=a;
}
function d(){
a=eval(a).toString();
document.getElementById("c").value=a;
}
</script>
我们按照从上到下的顺序,来理解这段脚本代码中变量和函数的功能。
首先,这里创建了一个变量a
,初始值为空字符串,用于存储用户输入的内容。
var a="";
接着,我们来看函数function b(x)
的定义:
function b(x){
a=a+x;
document.getElementById("c").value=a;
}
函数function b(x)
,是对模板代码中函数b()
的定义,它接受一个参数 x
,代表要添加到输入框中的数字或运算符。你可以这样理解它的代码:
a=a+x
:这行代码表示将每次点击的按钮x
添加到变量a
中,实现了数字和运算符的累加功能。document.getElementById("c").value=a
: 这行代码将变量a
中的内容显示在id
为c
的输入框中,实现了数字和运算符在输入框中的显示。
这个函数的作用是实现数字和运算符在输入框中的显示。当你随意点击页面中的数字和运算符按钮,如"123+456",会看到效果如下:
我们继续看函数function e()
的定义:
function e(){
a="";
document.getElementById("c").value=a;
}
函数function e()
,是对模板代码中函数e()
的定义。你可以这样理解它的代码:
a=""
:点击"C"按钮时,变量a
会被设为空字符串。document.getElementById("c").value=a
: 这行代码将变量a
中的内容显示在id
为c
的输入框中,达到输入框c
被清空的效果。
这个函数用于清除输入框中的内容。当你随意点击页面中的数字和运算符按钮,再点击"C"按钮,会看到效果如下:
最后,我们来看函数function d()
的定义:
function d(){
a=eval(a).toString();
document.getElementById("c").value=a;
}
函数function d()
,是对模板代码中函数d()
的定义。你可以这样理解它的代码:
a=eval(a).toString()
:点击"="按钮时,就会对用户输入的内容a
执行一段eval(a).toString()
的计算,结果会被存在变量a
中。document.getElementById("c").value=a
:这行代码将变量a
中的内容显示在id
为c
的输入框中,达到输入框显示计算结果的效果。
这个函数用来实现计算的功能。当你随意点击页面中的数字和运算符按钮,如"123+456",再点击"="按钮,会看到效果如下:
最后,我们做一个总结。在这个简单的计算器项目中,模板代码和脚本代码一共包含一个变量和三个函数,它们分别实现的功能如下:
变量
a
负责存储输入的数据,并显示在输入框c
中;函数
b(x)
用来显示输入框中的数字和运算符;函数
e()
用来清除输入框中的内容;函数
d()
用于实现计算功能。
通过这些变量和函数的结合,就可以通过脚本渲染出模板中计算器的基本功能,这就是一个简单的编程。
参考资料: JavaScript eval() 函数
6. 编程技巧:使用浏览器的开发者工具
编程常常会遇到代码运行不正常的情况,使用浏览器的开发者工具能帮助你找到代码错误的地方。
如果发现计算器运行不正常,可以加上一行代码console.log('a',a)
, 用chrome浏览器的控制台把a
的结果打印出来,方便检查代码的问题。
function d(){
a=eval(a).toString();
document.getElementById("c").value=a;
console.log('a',a);
}
在页面上点击右键,打开“检查”,看到报错信息。
通过控制台发现a
的值没有打印出来,根据报错信息a is not defined
,意思是变量a
没有用var
定义过,这时补充定义变量var a =""
后,控制台a
的值能打印出来,网页运行正常。
console.log()
能够把想查看的变量值在控制台打印出来,是检查代码常用的工具。