表达式和语句

表达式------

一个表达式可以产生一个值,有可能式运算,函数调用,有可能是字面量。表达式可以放在任何需要值的地方

语句-----

语句可以理解为一个行为,循环语句和判断语句就是典型的语句,一个程序有很多个语句组成,一般情况下;分割一个一个的语句

流程控制(代码的执行过程)

三种方式:

  • 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: 监视变量,不要监视表达式,因为监视了表达式,那么这个表达式也会执行。
 
 

JavaScript--总结二(流程控制+调试)的更多相关文章

  1. JavaScript运算符与流程控制

    JavaScript运算符与流程控制 运算符 赋值运算符 使用=进行变量或常量的赋值. <script> ​ let username = "YunYa"; ​ < ...

  2. JavaScript学习笔记——流程控制

    javascript流程控制流程:就是程序代码的执行顺序.流程控制:通过规定的语句让程序代码有条件的按照一定的方式执行. 一.顺序结构 按照书写顺序来执行,是程序中最基本的流程结构. 二.选择结构(分 ...

  3. Javascript初识之流程控制、函数和内置对象

    一.JS流程控制 1. 1.if else var age = 19; if (age > 18){ console.log("成年了"); }else { console. ...

  4. SpringMVC(二)——流程控制

    SpringMVC主要就是用来做流程控制的,这篇博客总结一下如何在流程控制添加Interceptor(拦截器),如何将进行流程Mapping映射解析,如何编写Controller(控制器). 一,首先 ...

  5. JavaScript之if流程控制演练,if写在区间内怎么解决

    什么是编程?通俗意见上来讲,就是把人的思维与步骤通过代码的形式书写展示出来,JavaScript的流程控制包含条件判断if,switch选择,循环for while:if(表达式 条件)=>真{ ...

  6. JavaScript 运算,流程控制和循环

    算数运算符 算术运算符 描叙 运算符 实例 加 + 10 + 20 = 30 减 - 10 – 20 = -10 乘 * 10 * 20 = 600 除 / 10 / 20 = 0.5 取余数 % 返 ...

  7. JavaScript学习笔记(9)——JavaScript语法之流程控制

    javascript的流程控制语句与大部分类c语言一致.大致如下: 一.if if...else if...else if....else if....else..... 二.switch(变量){ ...

  8. Postman高级应用——流程控制、调试、公共函数、外部数据文件

    postman客户端下载地址:https://www.getpostman.com/apps 目录 流程控制 调试 公共函数 外部数据文件 流程控制 流程控制简言之就是设置接口的执行顺序,流程控制只有 ...

  9. Dart:3.Dart运算符、流程控制

    一 . 运算符 以下列出 Dart 的运算符,从高到低按照优先级排列: 描述 运算符 一元运算符(后置) expr++ expr-- () [] . ?. 一元运算符(前置) -expr !expr ...

随机推荐

  1. requests请求高德地图api

    高德地图通过GET方式发送url请求数据.url里需要包含开发者key以及一些请求的具体参数.(详情可见高德官网)高德返回的数据默认为JSON格式,方便处理. 顺带来回忆一下requests模块的一些 ...

  2. Asp.NetCore之AutoMapper进阶篇

    应用场景 在上一篇文章--Asp.NetCore之AutoMapper基础篇中我们简单介绍了一些AutoMapper的基础用法以及如何在.NetCore中实现快速开发.我相信用过AutoMapper实 ...

  3. Python Flask后端异步处理(二)

    在实际的应用场景中,如用户注册,用户输入了注册信息后,后端保存信息到数据库中,然后跳转至登录界面,这些操作用户需要等待的时间非常短,但是如果是有耗时任务,比如对输入的网址进行漏洞扫描,在后端处理就会花 ...

  4. Leetcode学习笔记(5)

    之前断了一段时间没做Leetcode,深感愧疚,重新续上 题目1 ID104 给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说明: 叶子节点是指没有子节点 ...

  5. [BJDCTF 2nd]old-hack && [GXYCTF2019]禁止套娃

    [BJDCTF 2nd]old-hack 页面很有意思 同时也告诉了我们是THINKPHP5,我们只需要寻找THINKPHP5的漏洞就可以了. https://www.codercto.com/a/5 ...

  6. 团队作业6(B)-事后诸葛亮分析

    白给团队e-shop项目Postmortem结果 (整理:政B) 设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚? 答:主要是为商户和消费者提供一个网上交易商品的平台,定义明确. 2.我们 ...

  7. css之div中纯文字单行和多行垂直居中

    先上效果图 <html lang="en"> <head> <meta charset="UTF-8"> <meta ...

  8. UOJ61. 【UR #5】怎样更有力气

    题目链接 Statement 给定一棵 \(n\) 点树 \(T\) 和 \(m\) 个操作 v u w : 在 \(T\) 中 \(u,v\) 的最短路上所有点里面选出若干对(可以不选,可以重复), ...

  9. 廖雪峰官网学习js 数组

    indexOf( )    某字符的位置 slice 相当于string 的substring 切片 a = ['a','b',1,2,3] (5) ["a", "b&q ...

  10. mybaties 使用注解注入动态sql (if-else)-转义字符

    看到网上使用注解动态注入sql都是判断参数是否为空,我做项目的时候需要判断参数是否为字符串,需要对引号进行转义,所以把代码贴过来了. 注意:test表达式不能引用传入的参数,直接使用参数即可----- ...