流程控制
流程控制就是控制代码按照什么样的结构顺序来执行
流程控制主要有三种:顺序结构、分支结构、循环结构
顺序结构
程序按照代码书写的先后顺序执行
分支结构
分支流程控制就是在执行代码时,根据不同的条件,执行不同的代码路径,得到不一样的结果
分支流程控制可以通过if语句、三元表达式、switch语句实现
if语句
if(条件表达式){
执行语句
}
else if(条件表达式){
执行语句
}
else{
执行语句
}
三元表达式
由三元运算符组成的式子称为三元表达式,可以做一些简单的条件选择
结构:
条件表达式 ? 表达式1 : 表达式2
<script>
var a = prompt("please input a number");
a = parseInt(a);
// a大于10等于时输出a,小于10时在其前面加0
var b = a >= 10 ? a : '0'+a;
alert(b)
</script>
如果条件表达式为真,则返回表达式1的值,反之则返回表达式2的值
switch语句
switch语句是多分支语句,也可以实现多选一
switch (表达式){
case 值1:
执行语句1;
break;
case 值2:
执行语句2;
break;
case 值3:
执行语句3;
break;
default:
执行最后的语句
}
利用表达式的值和case后面的值相匹配(匹配的意思是值和数据类型相同),如果匹配上了,则执行该case后的执行语句,如果没有匹配上,则执行default后的执行语句。
如果当前的case中没有break,则不会退出switch,会执行下一个case中的执行语句,不管值是否能匹配上,直到遇到break语句
<script>
var a = prompt("please input a number:")
// a为1时输出一,为2时输出二,都不是则输出none
switch(a){
case '1':
alert('一');
break;
case '2':
alert('二');
break;
default:
alert('none');
}
</script>
if和switch语句的区别:
switch语句效率比if else if语句高
一般来说两种语句可以互相替换
switch case语句一般用于case比较确定值的情况下,而if语句常用于范围判断。
switch语句进行条件判断之后直接执行到程序的条件语句,效率更高
分支较少时,if else语句的执行效率较高
循环结构
循环的目的是重复执行某些语句
主要可以由for语句、while、do...while循环实现
for循环
重复执行某些代码,通常和计数有关系
//操作表达式是每次循环最后执行的代码,常用于更新计数器变量(递增或者递减)
//条件表达式是用于判断计数器变量是否符合条件,符合则循环继续
//初始化变量是声明一个计数器变量
for(初始化变量;条件表达式;操作表达式){
循环体;
}
循环输出100句JavaScript:
<script>
for(var a = 0; a<100; a++){
console.log('JavaScript');
}
</script>
for循环中也可以嵌套for循环,双重for循环中,外层for循环执行一次,里层循环全部执行
断点调试
断点调试是自己在程序中的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后可以一步一步往下调试,调试过程中可以看到各个变量当前的值,出错的话,调试到出错代码行即显示错误,停下
断点调试可以帮我们观察程序的运行过程
while循环
while循环可以在条件表达式为真时重复执行指定的一段代码,直到条件表达式不为真。
while(条件表达式){
循环体;
}
例如输出100句while:
<script>
var n=1
while(n<=100){
console.log('while');
n++;
}
</script>
与if语句的不同是while语句可以执行一些比较复杂的条件判断。
do...while
do...while与while类似,是while循环的一个变体,但它是先执行循环体再进行条件判断,为真就继续执行循环,而while是先进行条件判断再执行循环体
do{
循环体;
}while(条件表达式)
continue和break关键字
continue关键字表示跳过本次循环的后面的代码,进行下一次循环,而break表示直接跳出循环,也就是结束循环
JavaScript中的命名规范和语法格式
标识符命名规范
变量、函数的命名必须有意义
变量命名一般用名词
函数命名一般用动词
操作符规范
操作符左右两侧各保留一个空格
单行注释规范
单行注释前面要有空格
其他
小括号旁边要用空格,大括号要对齐