表达式

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

语句

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

流程控制

程序的三种基本结构

顺序结构

从上到下执行的代码就是顺序结构

程序默认就是由上到下顺序执行的

分支结构

根据不同的情况,执行对应代码

循环结构

循环结构:重复做一件事情

分支结构

if语句

语法结构

  1. if (/* 条件表达式 */) {
     // 执行语句
    }

    if (/* 条件表达式 */){
     // 成立执行语句
    } else {
     // 否则执行语句
    }

    if (/* 条件1 */){
     // 成立执行语句
    } else if (/* 条件2 */){
     // 成立执行语句
    } else if (/* 条件3 */){
     // 成立执行语句
    } else {
     // 最后默认执行语句
    }

案例: 求两个数的最大数 判断一个数是偶数还是奇数 分数转换,把百分制转换成ABCDE <60 E 60-70 D 70-80 C 80-90 B 90 - 100 A 作业: 判断一个年份是闰年还是平年 闰年:能被4整除,但不能被100整除的年份 或者 能被400整除的年份 判断一个人的年龄是否满18岁(是否成年)

三元运算符

  1. 表达式1 ? 表达式2 : 表达式3
    是对if……else语句的一种简化写法

案例: 是否年满18岁 从两个数中找最大值

switch语句

语法格式:

  1. switch (expression) {
     case 常量1:
       语句;
       break;
     case 常量2:
       语句;
       break;
     case 常量3:
       语句;
       break;
     
     case 常量n:
       语句;
       break;
     default:
       语句;
       break;
    }
  1. break可以省略,如果省略,代码会继续执行下一个case
    switch 语句在比较值时使用的是全等操作符, 因此不会发生类型转换(例如,字符串'10' 不等于数值 10

案例: 显示星期几 素质教育(把分数变成ABCDE)千万不要写100个case哟

布尔类型的隐式转换

流程控制语句会把后面的值隐式转换成布尔类型

  1. 转换为true   非空字符串 0数字 true 任何对象
    转换成false 空字符串 0 false null undefined
  1. // 结果是什么?
    var a = !!'123';

案例

  1. var message;
    // 会自动把message转换成false
    if (message) {    
     // todo...
    }

循环结构

在javascript中,循环语句有三种,while、do..while、for循环。

while语句

基本语法:

  1. // 当循环条件为true时,执行循环体,
    // 当循环条件为false时,结束循环。
    while (循环条件) {
     //循环体
    }

代码示例:

  1. // 计算1-100之间所有数的和
    // 初始化变量
    var i = 1;
    var sum = 0;
    // 判断条件
    while (i <= 100) {
     // 循环体
     sum += i;
     // 自增
     i++;
    }
    console.log(sum);

案例: 打印100以内 7的倍数 打印100以内所有偶数 打印100以内所有偶数的和 作业: 打印100以内的奇数 打印100以内的奇数的和

do...while语句

do..while循环和while循环非常像,二者经常可以相互替代,但是do..while的特点是不管条件成不成立,都会执行一次。

基础语法:

  1. do {
     // 循环体;
    } while (循环条件);

代码示例:

  1. // 初始化变量
    var i = 1;
    var sum = 0;
    do {
     sum += i;//循环体
     i++;//自增
    } while (i <= 100);//循环条件

案例:

  1. 100以内所有3的倍数的和
    使用do-while循环:输出询问“我爱你,嫁给我吧?”,选择“你喜欢我吗?(y/n):",如果输入为y则打印”我们形影不离“,若输入为n,则继续询问

for语句

while和do...while一般用来解决无法确认次数的循环。for循环一般在循环次数确定的时候比较方便

for循环语法:

  1. // for循环的表达式之间用的是;号分隔的,千万不要写成,
    for (初始化表达式1; 判断表达式2; 自增表达式3) {
     // 循环体4
    }

执行顺序:1243 ---- 243 -----243(直到循环条件变成false)

  1. 初始化表达式

  2. 判断表达式

  3. 自增表达式

  4. 循环体

案例:

  1. 打印1-100之间所有数
    1-100之间所有数的和
    1-100之间所有数的平均值
    1-100之间所有偶数的和
    同时求1-100之间所有偶数和奇数的和
    打印正方形
    // 使用拼字符串的方法的原因
    // console.log 输出重复内容的问题
    // console.log 默认输出内容介绍后有换行
    var start = '';
    for (var i = 0; i < 10; i++) {
    for (var j = 0; j < 10; j++) {
      start += '* ';
    }
    start += '\n';
    }
    console.log(start);
    打印直角三角形
    var start = '';
    for (var i = 0; i < 10; i++) {
    for (var j = i; j < 10; j++) {
      start += '* ';
    }
    start += '\n';
    }
    console.log(start);

    打印9*9乘法表
    var str = '';
    for (var i = 1; i <= 9; i++) {
    for (var j = i; j <=9; j++) {
      str += i + ' * ' + j + ' = ' + i * j + '\t';
    }
    str += '\n';
    }
    console.log(str);

continue和break

break:立即跳出整个循环,即循环结束,开始执行循环后面的内容(直接跳到大括号)

continue:立即跳出当前循环,继续下一次循环(跳到i++的地方)

调试

  • 过去调试JavaScript的方式

    • alert()

    • console.log()

  • 断点调试

断点调试是指自己在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。

  • 调试步骤

  1. 浏览器中按F12-->sources-->找到需要调试的文件-->在程序的某一行设置断点
  • 调试中的相关操作

  1. Watch: 监视,通过watch可以监视变量的值的变化,非常的常用。
    F10: 程序单步执行,让程序一行一行的执行,这个时候,观察watch中变量的值的变化。
    F8:跳到下一个断点处,如果后面没有断点了,则程序执行结束。

tips: 监视变量,不要监视表达式,因为监视了表达式,那么这个表达式也会执行。

  1. 代码调试的能力非常重要,只有学会了代码调试,才能学会自己解决bug的能力。初学者不要觉得调试代码麻烦就不去调试,知识点花点功夫肯定学的会,但是代码调试这个东西,自己不去练,永远都学不会。

  2. 今天学的代码调试非常的简单,只要求同学们记住代码调试的这几个按钮的作用即可,后面还会学到很多的代码调试技巧。

js表达式和语句的更多相关文章

  1. js 表达式与语句

    引子:表达式和语句很基础,但是有时会犯错,比如: function(){}//报错 (function(){})//不报错 function f(x){ return x + 1 }()//报错 fu ...

  2. js表达式和语句趣味题讲解与技术分享

    技术分享 问题1 { a: 1 } + 1 // ? ({ a: 1 }) + 1 // ? 1 + { a: 1 } // ? 答案 { a: 1 } + 1 // 1 ({ a: 1 }) + 1 ...

  3. js表达式与语句的区别

    http://www.2ality.com/2012/09/expressions-vs-statements.html http://www.jb51.net/article/31298.htm 表 ...

  4. 【.net 深呼吸】细说CodeDom(2):表达式、语句

    在上一篇文章中,老周厚着脸皮给大伙介绍了代码文档的基本结构,以及一些代码对象与CodeDom类型的对应关系. 在评论中老周看到有朋友提到了 Emit,那老周就顺便提一下.严格上说,Emit并不是针对代 ...

  5. js中退出语句break,continue和return 比较

    js中退出语句break,continue和return 比较 在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是 ...

  6. js中退出语句break,continue和return 比较(转)

    原链接:http://blog.163.com/ued_er/blog/static/199703159201210283107315/ js中退出语句break,continue和return 比较 ...

  7. js的break语句,continue语句,return语句

    js的break语句,continue语句,return语句. 用的时候很容易混淆,有过一次泪奔的经历. break语句 break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch ...

  8. Javascript - 表达式与语句

    表达式与语句(Expression&Statement) 流程控制语句 1.嵌入式语句 嵌入式即这种语句可以无限嵌套N层.所有嵌入式语句只需要键入首个关键单词,在visual studio里按 ...

  9. C Primer Plus_第5章_运算符、表达式和语句_编程练习

    Practice 1. 输入分钟输出对应的小时和分钟. #include #define MIN_PER_H 60 int main(void) { int mins, hours, minutes; ...

随机推荐

  1. 基于Spring MVC + Spring + MyBatis的【学生管理管理系统】

    资源下载:https://download.csdn.net/download/weixin_44893902/45602690 练习点设计:模糊查询.删除.新增 一.语言和环境 实现语言:JAVA语 ...

  2. ECMA-262规范定义的七种错误类型

    第一种:Error    所有错误的基本类型,实际上不会被抛出.   第二种:EvalError   执行eval错误时抛出. 第三种:ReferenceError    对象不存在是抛出. 第四种: ...

  3. JAVA获取上下行网速

    JAVA获取上下行网速 package com.iecas.zwterminalstate.util;import java.io.BufferedReader;import java.io.IOEx ...

  4. Ubuntu安装Jenkins是报错:The following signatures couldn't be verified because the public key is not available: NO_PUBKEY XXXXXXXXXXX

    我使用Ubuntu16.04安装Jenkins时,按照官网的要求,步骤如下(https://pkg.jenkins.io/debian-stable/): # 添加Key sudo wget -q - ...

  5. STL(1)vector

    STL(1) 1.vector vector是vector直译为"向量",一般说成"变长数组",也就是长度根据需要而自动改变的数组,有些题目需要开很多数组,往往 ...

  6. reduce/reduceRight

    使用 reduce 和 reduceRight 方法可以汇总数组元素的值,具体用法如下: reduce function appendCurrent (previousValue, currentVa ...

  7. Jsp页面中常见的page指令

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6513327323628962312/ 1.<JSP页面实际上就是Servlet> 2.<JSP页 ...

  8. 关于 cannot create Parameters: [] 报错问题的解决方法

    其实在Sort类中添加无参构造就可以解决 我自己写的是Sort类,其它情况得视你们自己写的类决定 至于为什么也不是很清楚

  9. 【解决了一个小问题】golang build中因为缓存文件损坏导致的编译错误

    编译的过程中出现了一个吓人的错误: GOROOT=C:\Go #gosetup GOPATH=C:\Users\ahfuzhang\go #gosetup C:\Go\bin\go.exe mod t ...

  10. 「Python实用秘技04」为pdf文件批量添加文字水印

    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第4期 ...