文章目录(Table of Contents)
简介
在上一篇中我们介绍了 JavaScript 基础,包括 JavaScript
中的变量声明,JavaScript
中的数组与字符串。在本文中,我们会继续学习 JavaScript
的关键基础特性,主要包括下面几个知识点:
- 条件控制语句(
if...else
语句,switch case
语句); - 循环语句(
for
循环,while
循环); - 函数模块(函数声明,函数表达式);
条件控制语句
if-else 语句
JavaScript
中最基本的条件控制语句为 if...else
语句。他的语法为:
- if (条件) {
- // 当条件为 true 时执行的语句
- } else {
- // 当条件为 false 时执行的语句
- }
我们来看一个简单的例子(需要注意每一行后面的分号):
- if (3 > 2) {
- console.log("我真帅");
- } else {
- console.log("不可能");
- }
if...else
语句是可以嵌套的。下面是他的语法:
- if(条件 1){
- // 当条件 1 为 true 时执行的代码
- } else if(条件 2){
- // 当条件 2 为 true 时执行的代码
- } else{
- // 当条件 1 和 条件 2 都不为 true 时执行的代码
- }
下面来看一个例子,注意这里语句后面是有「分号(;)」的:
- var test = 10;
- if (test > 10) {
- console.log('test > 10');
- } else if (test > 0 && test <=10) {
- console.log('10 > test > 0');
- } else {
- console.log('test < 0');
- }
switch case 语句
从前面的例子中我们可以看出来,当条件很多的时候,一直嵌套 else if
语句,显然是有点不科学的,由此我们引出了 switch case
语句,先来看看它的语法(注意每一个 case
里面是有 break
的,且每一个 break
后面是有分号的):
- switch(k){
- case 1:
- 执行代码块 1 ;
- break;
- case 2:
- 执行代码块 2 ;
- break;
- default:
- 默认执行(k 值没有在 case 中找到匹配时);
- }
下面我们看一个例子,根据今天的日期输出「星期几」,需要注意下面的分号:
- var d = new Date().getDay();
- switch (d) {
- case 0:
- console.log('今天星期天'); // 注意分号
- break;
- case 1:
- console.log('今天星期一');
- break;
- case 2:
- console.log('今天星期二');
- break;
- case 3:
- console.log('今天星期三');
- break;
- case 4:
- console.log('今天星期四');
- break;
- case 5:
- console.log('今天星期五');
- break;
- default:
- console.log("今天星期六");
- break;
- }
三元运算符
如果我们想要把条件表达式写在一行,可以使用「三元运算符」。他的语法如下所示:
- 条件表达式?结果 1:结果 2
问号前面的位置是判断的条件,判断结果为 boolean
型,为 true
时执行结果 1
,为 false
时执行结果 2
。
下面看一个例子,我们对 3>2
这个条件进行判断:
- 3 > 2 ? console.log("3 比 2 大") : console.log("3 比 2 小");
循环语句
for 循环
for
循环是我们编码中经常会使用到的。先来看看它的语法结构:
- for (初始化; 条件; 增量) {
- 循环代码;
- }
例如下面的例子,我们打印 1-100
中所有的奇数:
- for (var i=1; i<=100; i++) {
- if (i%2==1) { // 打印奇数
- console.log(i);
- }
- }
while 循环
在 JavaScript
中不止有 for
循环,还有其他的循环语句。我们先来看看 while
循环的语法结构:
- while (条件) {
- // 需要执行的代码;
- }
同样的,我们来完成打印 1-100
中所有的奇数:
- var i = 1;
- while (i <= 100) {
- console.log(i);
- i += 2;
- }
循环控制-break
我们也可以控制我们的循环语句。break
语句会立即退出整个循环。例如上述的 for
循环例子,我们来加个条件,使其能打印第一个能被 7
整除的整数。
- for (var i=1; i<=100; i++) {
- if (i%7==0) {
- console.log(i);
- break;
- }
- }
循环控制-continue
上面的 break
语句会退出整个循环,如果只想跳过当前的循环,则使用 continue
跳过迭代。continue
不是完全跳出循环,而是跳过当前循环而执行下一个循环。
例如下面的例子中,我们打印 1
到 100
所有能被 7
整除的整数
- for (var i=1; i<=100; i++) {
- if (i%7!=0) {
- continue; // 跳过不是 7 的倍数的
- } else {
- console.log(i);
- }
- }
函数
函数是被设计为执行特定任务的代码块,可重复调用执行。我们将一些重复使用的代码封装起来,使用的时候可以直接调用。
函数声明创建函数
我们可以使用下面的语法来创建函数:
- function functionName(parameters) {
- // 执行的代码
- }
例如我们创建一个有「加法」功能的函数:
- function f(a, b) {
- console.log(a+b);
- }
- f(2,3); // 调用函数
上面的代码中:
- 形参,
f(a,b)
中的a
和b
是「形参」,占位用,函数定义时形参无值; - 实参,当我们调用上面的函数时比如
f(2, 3);
其中 2 和 3 就是实参,会传递给 a 和 b;
函数表达之创建函数
除了上面的函数声明方式之外,我们还可以使用「函数表达式」来创建函数。JavaScript
函数可以通过一个表达式定义。函数表达式可以存储在变量中。下面是他的语法:
- var functionName = function (parameters) {
- // 执行的代码
- };
我们还是完成一个加法的函数:
- var f = function (a,b) {
- return a+b;
- }
- console.log(f(3,5)); //8
函数声明与函数表达式的区别
我们总结一下函数声明和函数表达式的区别。
- 函数声明:JavaScript 解析器首先会把当前作用域的函数声明提前到整个作用域的最前面;
- 函数表达式:JavaScript 解析器只有执行到某一句的时候才会对其进行解析;
下面看两个例子。首先第一个例子是可以正确执行的。因为使用「函数声明」,所以函数定义的位置是没有关系的:
- f(2, 3);
- function f(a, b) {
- console.log(a + b);
- }
接着是第二个,使用函数表达式则会报错,出现「f is not a function」的错误:
- f(2, 3);
- var f = function (a, b) {
- console.log(a + b);
- };
- 微信公众号
- 关注微信公众号
- QQ群
- 我们的QQ群号
评论