表达式和语句

表达式------

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

语句-----

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

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

三种方式:

  • 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. Fiddler 4 (过滤器的使用)

    1.先找到过滤器并且勾选 2.勾选 并填写要过滤的地址 3.运行 最终效果如下

  2. Qt中,将以png为格式的图片在按钮控件上显示

    在Qt编程中,我们常常会遇见这样或那样的小问题,这里,我介绍一个将png为格式的图片在按钮控件上显示的小功能. resistanceBtn = new QPushButton(element); re ...

  3. 获取radio的值及重置radio

    获取:$('input[name=age]:checked').val(); 重置:$('input:radio[name=age]').prop('checked',false);

  4. 三、Zookeeper简介

    一.简介 zookeeper 主要使用场景:分布式系统的分布式协同服务.协同工作就是通过某种方式,让着节点的信息能够同步和共享,依赖于进程间的通信.通信方式有俩种. 通过网络进行信息共享 现实工作中, ...

  5. 购物车 python作业

    功能要求:要求用户输入总资产,例如:2000显示商品列表,让用户根据序号选择商品,加入购物车购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功.附加:可充值.某商品移除购物车goods = ...

  6. js中的bind、apply、call、callee、caller的区别

    1.bind.apply与call的区别与使用 相同点:2者是函数原型的一个方法,因此调用者都必须是函数,第1个参数都是对象.作用是,用另一个对象替换当前对象,另一对象也即是你传的第一个参数.通常用于 ...

  7. sqli-labs less8-10(布尔盲注时间盲注)

    less-8 布尔盲注 首先利用?id=1' and 1=1 --+和?id=1' and 1=2 --+确定id的类型为单引号''包裹.然后进行盲注. 盲注思路: 破解当前数据库名: and len ...

  8. Consul安装部署(Windows单机、Docker集群)

    1. Consul简介   Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发,基于 Mozilla Public Licen ...

  9. SQL Server NULL值用法及处理详解

    用法如下: 1.如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录,这意味着该字段将以 NULL 值保存. 2.NULL 用作未知的或不适用的值的占位符. 3.定 ...

  10. JavaSE24-类加载器&反射&模块化

    1.类加载器 1.1 类加载 类加载的描述 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过类的加载,类的连接,类的初始化这三个步骤来对类进行初始化.如果不出现意外情况,JVM将会连续完 ...