表达式和语句
表达式------
一个表达式可以产生一个值,有可能式运算,函数调用,有可能是字面量。表达式可以放在任何需要值的地方
语句-----
语句可以理解为一个行为,循环语句和判断语句就是典型的语句,一个程序有很多个语句组成,一般情况下;分割一个一个的语句
流程控制(代码的执行过程)
三种方式:
- 1.顺序结构---从上到下,从左到右执行的顺序
- 
2.分支结构---if语句,if-else语句,if-else if-else if...语句,switch-case语句,三元表达式语句
 
if语句
 
语法结构
- if (/* 条件表达式 */) {
-   // 执行语句
- }
- if (/* 条件表达式 */){
-   // 成立执行语句
- } else {
-   // 否则执行语句
- }
- if (/* 条件1 */){
-   // 成立执行语句
- } else if (/* 条件2 */){
-   // 成立执行语句
- } else if (/* 条件3 */){
-   // 成立执行语句
- } else {
-   // 最后默认执行语句
- }
 
 
if语句只有一个分支
if-else语句有两个分支,最终执行一个分支
if-else if-else if-else if-else if..........else---多分支,最终也是执行一个
 
 
三元运算符
表达式1 ? 表达式2 : 表达式3
是对if……else语句的一种简化写法
switch语句
-  
switch(表达式){
       case 值1:代码1;break;
       case 值2:代码2;break;
       case 值3:代码3;break;
       case 值4:代码4;break;
       ...多个case
       default:代码5; 
      }
 
执行过程:
     * 获取表达式的值,和值1比较,如果一样,则执行代码1,遇到break则跳出整个的语句,后面代码不执行
     * 如果表达式的值和值1不一样,则和值2比较,如果相同则执行代码2,遇到break则跳出
     * 否则和值3比较,相同则执行代码3,遇到break,跳出,否则和值4比较,相同则执行代码4,遇到break则跳出,否则直接执行代码5
 
-  
 default后面的break是可以省略的
 default也可以省略
 
- break可以省略,如果省略,代码会继续执行下一个case
 switch语句在比较值时使用的是全等操作符,因此不会发生类型转换(例如:字符串“10”不等于10)
 
分支语句总结###
1.if语句:一个分支
2.if-else语句:俩个分支,最终只执行一个
3.if-else if-else if-else if...语句:多个分支,最终只执行一个
4.switch-case语句:多分支语句,最终也会一个(必须要有break的情况下)
5.三元表达式:和if-else语句一样
一般对范围的判断时--使用if-else if....
一般对具体的值的判断---使用switch-case语句
布尔类型的隐式转换
流程控制语句会把后面的值隐式转换成布尔类型
转换为true 非空字符串 非0数字 true 任何对象
转换成false  空字符串  0  false  null  undefined
- var message;
- // 会自动把message转换成false
- if (message) {     
-   // todo...
- }
 
- 
3.循环结构---while循环,do-while循环,for循环,for-in循环
循环:一件事不断的或者重复的执行
循环需要有结束的条件,循环还应该有计时器(记录循环的次数)
while循环
语法:
- 计时器
- var 变量=0;
- while(循环的条件){
-    循环体;
-    计数器++;
- }
 
执行过程:先判断条件是否成立,条件结果是true还是false,如果是false,那么循环的代码(while大括号中的代码全部不执行),如果为true,那么执行while里的代码循环体,再执行计时器,再次判断...直到不满足条件,退出结束循环体。
do...while循环
语法:
 
- var i=0;----计时器
- do{
- 循环体
- 计时器++
- }while(条件);
 
 
执行过程:先执行一次循环体,然后判断条件是否成立,不成立,则跳出循环;成立则执行循环体,然后再判断条件是否成立,成立则继续循环,直到不满足条件则跳出
 
while和do-while区分特点
while:先判断后循环,有可能一次循环体都不执行
do-while:先循环后判断,至少要执行一次循环体
for循环
while和do...while一般用来解决无法确认次数的循环。for循环一般在循环次数确定的时候比较方便
语法:
// for循环的表达式之间用的是;号分隔的,千万不要写成,
for (初始化表达式1; 判断表达式2; 自增表达式3) {
  // 循环体4
}
执行顺序:1243--243--243(直到循环条件变成false)
1--初始化表达式
2--判断表达式
3--自增表达式
4--循环体
continue和break
break:立即跳出整个循环,即循环结束,开始执行循环后面的内容(直接跳到大括号)
continue:立即跳出当前循环,继续下一次循环(跳到i++的地方)
调试
过去调试JS的方式
alert();
console.log();
断点调试
点调试是指自己在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。
调试步骤:写代码---打开浏览器--F12(开发人员工具)--->Sources---双击文件,在某一行代码前面点击一下(出现的东西就是断点)
 
调试中的相关操作
watch:监视,通过watch可以监视变量值的变化,很常用
f10:程序单步执行,让程序一行一行的执行,这个时候,观察watch中变量值的变化
f8:跳到下一个断点处,如果后面没有断电了,则程序执行结束
tips: 监视变量,不要监视表达式,因为监视了表达式,那么这个表达式也会执行。