JavaScript基础day02

运算符

 赋值运算符

=      +=    -=    /=    %=   *=

<script>

  let num = 10

  //num += 1
  //num -= 1
  //num *= 2
  //num /= 2

</script>

 一元运算符

常用于计数       自增:++                自减:--


let num = 1 
//前置自增  先自加再使用 
console.log(++num + 2)   //num先自加为2,再加2,结果为4
 
//后置自增  先使用再自加
 console.log(num++ + 2 )  //num此时为1,再加2,结果为3,在整个表达式计算完毕之后发生 num加1为2


//前置自增和后置自增单独使用没有什么区别
<script>
let i = 1
console.log(i++ + ++i + i) //结果为7

//第一个操作i++返回1(但之后i变为2)
//第二个操作++i先将i增加到3,然后返回3
//第三个操作直接使用当前的i值,即3

</script>

 比较运算符

console.log(undefined == null)  //true

console.log(undefined === null) //false  类型不一样

//强烈推荐使用 ===

<script>
    //字符串比较 是从左往右依次比较字符对应的ASCII码  
    console.log('aa' < 'ab')  //true
    console.log('ac' > 'ad')  //false
    //NaN不等于任何值,包括它本身。  涉及到"NaN“ 都是false
    console.log(NaN === NaN) //false
    console.log(NaN > 1)  //false
    // 不同类型之间比较会发生隐式转换(转成number类型再比较)
    console.log(2 == '2')  //true
    console.log(2 !== '2') //true

    // 尽量不要比较小数,因为小数有精度问题
  </script>

 逻辑运算符

<script>
    // 真值(truthy):在JavaScript中,除了false、0、""(空字符串)、null、undefined和NaN之外的所有值都被认为是真值。
    // 假值(falsy):false、0、""(空字符串)、null、undefined和NaN被认为是假值。
    console.log(11 && 22) //22
    /*11 是真值。因为&&的左侧是真值,所以JavaScript会评估&&的右侧。22 也是真值,并且因为是&&操作的最终结果,所以返回22。 */
    console.log(false && 'hello')  //false
    /* false 是假值。因为&&的左侧是假值,所以JavaScript不会评估&&的右侧,并直接返回左侧的值。 */
    console.log(33 || 44)  //33
    /* 33 是真值。因为||的左侧是真值,所以JavaScript不会评估||的右侧,并直接返回左侧的值。 */
    console.log(0 || 66)  //66
    /* 0 是假值。因为||的左侧是假值,所以JavaScript会评估||的右侧。66 是真值,并且因为是||操作的最终结果,所以返回66。 */

  </script>

 运算符优先级

 一元运算符里面的逻辑非优先级很高                                逻辑与比逻辑或优先级高

语句

 表达式和语句

表达式:表达式可被求值,所以它可以写在赋值语句的右侧。 如 num = 3 + 4

语句:语句不一定有值,比如 alert() for和break 等语句就不能被用于赋值。

 分支语句

 If分支语句
//单分支

if(条件)
{
  执行满足条件的代码
}

//双分支

if(条件)
{
  执行满足条件的代码
}
else
{
  执行不满足条件的代码
}

//多分支

if(条件1)
{
  执行满足条件1的代码
}
else if(条件2)
{
  执行满足条件2的代码
}
........
else 
{
  执行不满足条件的代码
}
//判断用户登录

<script>
    let uname = prompt('请输入姓名')
    let pwd = prompt('请输入密码')
    // 判断要用全等
    if (uname === 'hahaha' && pwd === '123456') {
      alert('登录成功')
    }
    else {
      alert('登录失败')
    }
</script>
//成绩等级

<script>
    let score = +prompt('请输入分数')
    if (score >= 90) {
      alert('优秀')
    }
    else if (score >= 70) {
      alert('良好')
    }
    else if (score >= 60) {
      alert('合格')
    }
    else {
      alert('不合格')
    }
 </script>
 三元运算符
// 语法     条件  ? 满足条件执行的代码 : 不满足条件执行的代码

<script>
    // 用户输入1个数,如果数字小于10,则前面进行补0, 比如 09   03 等
    let num = +prompt('输入数字')
    num = num < 10 ? '0' + num : num
    alert(num)
</script>
 switch 语句
// switch case语句一般用于等值判断,不适合于区间判断
// switch case一般需要配合break关键字使用 没有break会造成case穿透

//简单计算器
<script>
    let num1 = +prompt('请输入第一个数字')
    let num2 = +prompt('请输入第二个数字')

    let op = prompt('请输入算术运算符')
    switch (op) {
      case '+':
        num = num1 + num2
        alert(num)
        break
      case '-':
        num = num1 - num2
        alert(num)
        break
      case '*':
        num = num1 * num2
        alert(num)
        break
      case '/':
        num = num1 / num2
        alert(num)
        break
      default:
        {
          alert('出错')
          break
        }
    }

  </script>

 循环语句

while(循环条件)
{
  循环体
}


let i =1
while(i<=2)
{
  console.log(i)
  i++
}

continue 退出本次循环,一般用于排除或者跳过某一个选项。

break 退出整个循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用。

综合:简易ATM取款机案例

<script>
    let money = 100
    while (true) {
      // 使用反引号``换行不报错
      let num = +prompt(`请选择你的操作:
                         1.取款 
                         2.存款 
                         3.查看余额 
                         4.退出 `)
      // 多使用全等
      if (num === 4) {
        break
      }
      switch (num) {
        case 1:
          let num1 = +prompt('取多少钱')
          alert(`取款后还剩下${money - num1}元`)
          break
        case 2:
          let num2 = +prompt('存多少钱')
          alert(`存款后还剩下${money + num2}元`)
          break
        case 3:
          alert(`余额为${money}元`)
          break
        default:
          break
      }
    }
  </script>

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值