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>
相关推荐
浩星7 分钟前
electron系列5:深入理解Electron打包
前端·javascript·electron
患得患失94912 分钟前
【前端WebSocket】心跳功能,心跳重置策略、双向确认(Ping-Pong) 以及 指数退避算法(Exponential Backoff)
前端·websocket·算法
英俊潇洒美少年13 分钟前
React 实现 AI 流式打字机对话:SSE 分包粘包处理 + 并发优化
前端·javascript·react.js
chQHk57BN16 分钟前
前端测试入门:Jest、Cypress等测试框架使用教程
前端
数据知道20 分钟前
claw-code 源码分析:大型移植的测试哲学——如何用 unittest 门禁守住「诚实未完成」的口碑?
开发语言·python·ai·claude code·claw code
遇见你...25 分钟前
前端技术知识点
前端
小堃学编程29 分钟前
【项目实战】基于protobuf的发布订阅式消息队列(2)—— 线程池
java·开发语言
每日任务(希望进OD版)35 分钟前
线性DP、区间DP
开发语言·数据结构·c++·算法·动态规划
怨言.36 分钟前
Java内部类详解:从基础概念到实战应用(附案例)
java·开发语言
AC赳赳老秦36 分钟前
OpenClaw image-processing技能实操:批量抠图、图片尺寸调整,适配办公需求
开发语言·前端·人工智能·python·深度学习·机器学习·openclaw