JS表达式与语句-JavaScript论坛-编程学习-校园博客

JS表达式与语句

  • 表达式:是可以被求值的代码,js引擎会将其计算出一个结果
  • 语句:一段可以被执行的代码

区别

  • 表达式与语句的区别
  • 一个可以求值,一个不一定
  • 表达式 num = 3 + 4
  • 语句 alert() console.log()

三大流程控制语句

  • 顺序语句
  • 条件语句
  • 循环语句

分支语句

选择性的执行想要的代码

  • if 分支
  • 三元运算符
  • switch 语句

if分支语句

if单分支语句

  • 语法:
if(条件) {
      执行语句
 }

条件都会转换为布尔类型

  • 除了0,所有的数字都为rue
  • 除了”(空字符串) 其余所有字符串都为真
if (true) {
    console.log('执行');
}

let score = +prompt('请输入成绩')
if (score > 700) {
    alert('恭喜!')
}

if双分支语句

  • 语法
if(条件) {
      满足条件执行的代码
    } else {
      不满足条件执行代码
    }
  • 案例一
let username = prompt('请输入用户名')
    let password = prompt('请输入密码')

    if (username === 'ttx' && password === '123456') {
      alert('恭喜登录成功')
    } else {
      alert('用户名或密码错误')
    }
  • 案例二
/* 能被4整除但不能被100整除 或者被400整除 否则平年 */

    // 1.用户输入
    let year = prompt('请输入年份')

    // 2.判断输出
    // 先 && 后 ||
    if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
      alert(`${year}年为闰年`)
    } else {
      alert(`${year}年是平年`)
    }

if多分支语句

let score = parseFloat(prompt('请输入成绩'))
    if (score >= 90) {
      alert('成绩优秀')
    } else if (score >= 70) {
      alert('成绩良好')
    } else if (score >= 60) {
      alert('成绩合格')
    } else {
      alert('不及格')
    }

三元运算符

  • 使用场景:其实是比if双分支更简单的写法,可以使用三元表达式,一般用来取值
  • 符号:? :
  • 语法
条件 ? 满足条件执行的代码 : 不满足条件执行的代码
  • 练习一下
// 3 > 5 ? alert('真的') : alert('假的')
    // alert(3 > 5 ? '真的' : '假的')

    let sum = 3 < 5 ? 3 : 5
    document.write(sum)

案例

判断两个数的最大值

let num1 = +prompt('请输入第一个数')
    let num2 = +prompt('请输入第二个数')

    num1 > num2 ? alert(`最大值为${num1}`) : alert(`最大值为${num2}`)

    // 方法2:使用if
    if (num1 > num2) {
      document.write(`最大值为${num1}`)
    } else {
      document.write(`最大值为${num2}`)
    }

swich选择语句

  • 语法格式
switch (数据) {
      case 值1:
        代码1
        break
      case 值2:
        代码2
        break
      default:
        代码n
        break
    }
  • 数据 === 值
  • 没有 break 就会穿透 往下漏
  • 执行效率比if else if高
switch (2) {
      case 1:
        console.log('你选择的是1');
        break //退出switch
      case 2:
        console.log('你选择的是2');
        break //退出switch
      case 3:
        console.log('你选择的是3');
        break //退出switch
      default:
        console.log('没有符合条件的');
      //最后一个break可以省略
    }

案例

  • 简单计算器
  • 需求:输入两个数字,输入运算符号,弹出结果
let num1 = +prompt('请输入第一个数')
    let num2 = +prompt('请输入第二个数')
    let sp = prompt('请你输入 + - * / 操作符')

    switch (sp) {
      case '+':
        document.write(`两个数的加法操作${num1 + num2}`)
        break
      case '-':
        document.write(`两个数的减法操作${num1 - num2}`)
        break
      case '*':
        document.write(`两个数的乘法操作${num1 * num2}`)
        break
      case '/':
        document.write(`两个数的除法操作${num1 / num2}`)
        break
      default:
        document.write('<h2>你干啥呀!为啥不输入+ - * / 中的任何一个呢</h2>')
    }

switch与if的区别

共同点

  • 都能实现多分支,多选一
  • 大部分情况下可以互换

区别

  • switch...case语句通常处理case为比较确定值得情况,而if...else...语句更加灵活,通常用于范围判断(大于,等于某个范围)
  • switch语句进行判断后直接执行到程序得语句,效率更高;而if...else语句有几种判断条件,就得判断多少次
  • switch一定要注意,必须是===全等,一定注意数据类型,同时注意break,否则会有穿透效果

结论

  • 当分支比较少时,if...else语句执行效率高
  • 当分支比较多时,switch语句执行效率高,而且结构清晰
请登录后发表评论

    没有回复内容