JavaScript基础语法two

一、运算符

赋值运算符

对变量进行赋值,符号:=

+=,-=,*=,/=

javascript 复制代码
 <script>
    let num = 1
    num = num + 1
    //num += 1
    console.log(num);
    
  </script>
一元运算符

根据所需表达式的个数,分为一元、二元、三元运算符

javascript 复制代码
<script>
    //二元运算符
  let num = 10 + 20
  //一元运算符
  //正负号
  //自增:++,自减:--
  let num1 = 1
  //前置自增
  ++num1
  console.log(num1);
  //后置自增,num1++
  </script>

区别:前置自增,后置自增单独使用没有区别,如果参与运算就有区别:前置自增:先加在使用,后置自增:先使用在加

javascript 复制代码
let num = 1
console.log(num++ + ++num +num)//7
比较运算符

< ,>, >=, <=, == ,===, !==,!=

javascript 复制代码
 <script>
    console.log(2 == 2)//true
    console.log(2 == '2')//true
    console.log(2 === 2)//true
    //===全等,要判断值和数据类型都一样才行
    console.log(2 === '2')//false
    console.log(NaN === NaN)//false,NaN不等于任何人,包括它自己
  </script>

字符串比较,比较字符对应的ASCll码

尽量不要比较小数,小数有精度问题

比较运算符返回结果是boolean类型

比较运算数据类型会被转换成数字类型(隐式转换)

逻辑运算符

解决多重条件判断

&&(逻辑与,一假则假),||(逻辑或,一真则真),!(逻辑非:取反)

运算符优先级

优先级:小括号>一元运算符(++,--,!,逻辑非优先级高)>算数运算符>关系运算符>相等运算符>逻辑运算符(先&&后||)>赋值运算符>逗号运算符

二、语句

表达式和语句

表达式:可被求值,写在赋值语句右侧,例如:num = 3 + 4

语句:不一定有值,是一段可执行代码,例如:alert()弹出对话框

分支语句

三大流程控制语句:顺序结构,分支结构,循环结构

分支语句:

if语句(单分支,双分支,多分支)

if里面的条件除了' ',所有字符串都是真

三元运算符:条件?满足条件执行的代码:不满足条件执行的代码

switch语句(必须是全等===):找到跟小括号里数据全等的case值,一般用于等值判断

javascript 复制代码
switch(数据){
  case 值1:
       代码
       break
  case 值2:
       代码
       break 
  case 值3:
       代码
       break
       ......
  default:
}
循环语句

断点调试:

浏览器打开调试界面:F12打开开发者工具,点sources,选择代码文件

while循环:

javascript 复制代码
while(循环条件){
要重复执行的代码(循环体)
}
javascript 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    //页面输出1-100
    let i = 1
    while (i <= 100){
      document.write(`这个第${i}个数<br>`)
      i++
    }
    //计算1加到100的和
    let num = 1
    let sum = 0
    while (num <= 100){
      sum += num
      num++
    }
    document.write(`1加到100的和为${sum}<br>`)
    //计算1加到100的偶数和
    let num1 = 1
    let sum1 = 0
    while (num1 <= 100){
      if (num1 % 2 === 0){
        sum1 += num1
      }
       num1++
    }
    document.write(`1加到100的偶数和为${sum1}`)
  </script>
</body>
</html>

循环结束:

break:结束本层循环

continue:结束本次循环,继续下一轮循环

javascript 复制代码
<script>
    while (true){
      let str = prompt('你爱我吗')
      if (str ==='爱'){
        break
      }
    }
  </script>

三、综合案例

简易ATM取款机案例

javascript 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    let totalMoney = 100
    while (true) {
      let result = +prompt(`
      请您选择操作:
      1.存钱
      2.取钱
      3.查看余额
      4.退出
      `)
      if (result === 4) {
        break
      }
      switch (result) {
        case 1:
          totalMoney += +prompt('请输入存款金额')
          break
        case 2:
          totalMoney -= +prompt('请输入取款款金额')
          break
        case 3:
          alert(`您的银行卡余额为${totalMoney}`)
          break
      }
    }
  </script>
</body>
</html>
相关推荐
IT_陈寒4 小时前
Java中equals方法比了个寂寞?原来这才是正确的重写姿势
前端·人工智能·后端
默_笙4 小时前
🚓 分诊台与拆题术:让 RAG 学会判断和规划
前端·javascript
CopyCode4 小时前
用 AI 迁项目有多爽?我把 Webpack 迁 Vite 的全过程记下来了
前端·架构
去伪存真4 小时前
Electron 自动化发布指南:GitHub Actions 跨平台打包全纪录
前端·electron
计算机魔术师4 小时前
OpenAI智能体失控闯进美国政府网站,53张用户图片外泄背后
前端
颜进强4 小时前
14 · NestJS ExecutionContext 执行上下文:守卫、拦截器、过滤器拿到的"同一个 context",为什么能力不一样?
前端·后端·ai编程
程序员Flycan4 小时前
🚀 跨域终结者:前端代理服务器(Proxy)原理解析与配置总结
前端
怕浪猫4 小时前
顶级模型一句话,AI 写出了能玩的 QQ飞车
前端·面试·github
huakoh4 小时前
MCP 报错分不清?先看响应里是 result 还是 error
前端
呃呃呃呃ex4 小时前
10. 现代前端工程化:ES6 React 项目实战与原理解析
前端·javascript