javascript运算符与流程控制

news2024/11/15 15:40:46

文章和代码已经归档至【Github仓库:https://github.com/timerring/front-end-tutorial 】或者公众号【AIShareLab】回复 javascript 也可获取。

文章目录

  • 运算符的分类
    • 算数运算符
      • 浮点数的精度问题
    • 递增和递减运算符
    • 比较运算符
      • 逻辑运算符
        • 短路运算(逻辑中断)
        • 逻辑与
        • 逻辑或
    • 赋值运算符
    • 运算符优先级
  • 流程控制
    • 分支语句
      • if 语句
      • switch 分支流程控制
    • 三元表达式
    • 断点调试
    • 循环语句
      • while循环
        • 中止循环
        • 无限循环
      • for 语句

运算符的分类

JavaScript 中常用的运算符有:

  • 算数运算符
  • 递增和递减运算符
  • 比较运算符
  • 逻辑运算符
  • 赋值运算符

算数运算符

+-*/%

浮点数的精度问题

浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数。

var result = 0.1 + 0.2; // 结果不是 0.3,而是:0.30000000000000004
console.log(0.07 * 100); // 结果不是 7, 而是:7.000000000000001

⚠因此不要直接判断两个浮点数是否相等 !

递增和递减运算符

递增(++)和递减( – )运算符,老生常谈,这里不多做解释了。

比较运算符

等号比较:注意 ===== 的区别。

逻辑运算符

逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。后面开发中经常用于多个条件的判断。

短路运算(逻辑中断)

短路运算的原理:当有多个表达式(值)时, 左边的表达式值可以确定结果时, 就不再继续运算右边的表达式的值;

开发中,还会见到以下的写法:

其实类似参数的默认值写法

逻辑与

表达式1 && 表达式2

  • 如果第一个表达式的值为真,则返回表达式 2
  • 如果第一个表达式的值为假,则返回表达式 1
console.log( 123 && 456 ); // 456
console.log( 0 && 456 ); // 0
console.log( 123 && 456&& 789 ); // 789

逻辑或

表达式 1 || 表达式 2

  • 如果第一个表达式的值为真,则返回表达式 1
  • 如果第一个表达式的值为假,则返回表达式 2
console.log( 123 || 456 ); // 123
console.log( 0 || 456 ); // 456
console.log( 123 || 456 || 789 ); // 123

赋值运算符

运算符优先级

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

流程控制

流程控制主要有三种结构,分别是顺序结构分支结构循环结构,代表三种代码执行的顺序。

分支语句

分支结构:根据不同的条件,执行不同的路径代码(执行代码多选一的过程),从而得到不同的结果。

if 语句

// 条件成立执行代码,否则什么也不做
if (条件表达式) {
// 条件成立执行的代码语句
}

// 条件成立 执行 if 里面代码,否则执行else 里面的代码
if (条件表达式) {
// 条件成立执行的代码
} else {
//执行的代码
}

// 适合于检查多重条件。
if (条件表达式1) {
语句1} else if (条件表达式2) {
语句2} else if (条件表达式3) {
语句3....
} else {
// 上述条件都不成立执行此处代码
}

switch 分支流程控制

switch( 表达式 ){
case value1:
// 表达式 等于 value1 时要执行的代码
break;
case value2:
// 表达式 等于 value2 时要执行的代码
break;
default:
// 表达式 不等于任何一个 value 时要执行的代码
}
  • 关键字 switch 后面括号内可以是表达式或值,通常是一个变量
  • 关键字 case , 后跟一个选项的表达式或值,后面跟一个冒号
  • switch 表达式的值会与结构中的 case 的值做比较
    • 如果存在匹配全等 (===) ,则与该 case 关联的代码块会被执行,并在遇到 break 时停止,整个 switch 语句代码执行结束
    • 如果所有的 case 的值都和表达式的值不匹配,则执行 default 里的代码

注意: 执行 case 里面的语句时,如果没有 break,则继续执行下一个 case 里面的语句。

三元表达式

表达式1 ? 表达式2 : 表达式3;

如果表达式1为 true ,则返回表达式2的值,如果表达式1为 false,则返回表达式3的值。

断点调试

  1. 浏览器打开调试界面(按 F12打开开发者工具)
  2. 点到源代码一栏 ( sources )
  3. 选择代码文件
  4. 然后在需要加断点的地方点击侧边栏
  5. 重新刷新,鼠标放在代码变量上即可看见当前变量保存值。

    点击 step over 可以执行下一步。

    也可以通过右侧栏里的 watch,选择添加需要观察的变量名称直观的看变量值。

循环语句

while循环

while (条件表达式) {
   // 循环体    
}

中止循环

break 中止整个循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用(提高效率)

continue 中止本次循环,一般用于排除或者跳过某一个选项的时候

无限循环

1.while(true) 来构造“无限”循环,需要使用break退出循环。(常用)
2.for(;😉 也可以来构造“无限”循环,同样需要使用 break 退出循环。

for 语句

  for(起始值; 终止条件; 变化量) {
  // 要重复执行的代码
  }

案例:打印星星

 // 外层打印几行
for (let i = 1; i <= 5; i++) {
    // 里层打印几个星星
    for (let j = 1; j <= i; j++) {
        document.write('★')
    }
    document.write('<br>') // 用这种换行方式。
}

测试: https://ks.wjx.top/vm/tjmrvAg.aspx#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/815275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

报表工具有哪些?奥威BI+方案,快速搞定数据分析

报表工具有很多&#xff0c;如Excel、 Tableau、Power BI、帆软BI、思迈特BI等都是中国企业常用的报表工具&#xff0c;但要说能够成熟使用“BI方案”&#xff0c;更快地完成部署&#xff0c;推动企业大数据分析的却寥寥无几。“奥威BI方案”&#xff0c;低风险、高效率、高性价…

首期华为云ROMA Connect《企业集成战略与华为数字化之道》高研班在东莞圆满举办

7月25日&#xff0c;首期华为云ROMA Connect《企业集成战略与华为数字化之道》高研班在东莞华为制造业数字化转型中心圆满举办。 20多家东莞精密机械、电子、环保等领域的先进企业董事长、总经理、CIO、总监等高管参加培训。 本次高研班邀请到华为数字化转型专家陈劲、马兵东…

paddle实现获取pdf的内容

paddle实现获取pdf的内容 1. 环境安装2. 实现代码 源码链接 1. 环境安装 安装paddlepaddle gpu版本python -m pip install paddlepaddle-gpu -i https://pypi.tuna.tsinghua.edu.cn/simplecpu版本&#xff1a;python -m pip install paddlepaddle -i https://pypi.tuna.tsing…

NeRF知识点:不同Contraction的数学表达

NeRF知识点&#xff1a;不同Contraction的数学表达 目录 Foward-facing 场景&#xff1a;NDC&#xff08;Normalized Device Coordinate&#xff09;1 360&#xff0c;object-centric 场景&#xff1a; inverse-sphere warping1 MeRF: Piecewise-projective Contraction1 …

基于以太坊+IPFS的去中心化数据交易方法及平台

自己的论文&#xff0c;哎费事 目录 基于以太坊IPFS的去中心化数据交易方法及平台 基于以太坊IPFS的去中心化数据交易方法及平台 摘要&#xff1a; 数据交易过程中存在数据权属不明和数据安全问题。本文开发了一种基于以太坊IPFS的去中心化数据交易方法及平台。方法包括&am…

函数指针数组

前面学习过数组 指针数组&#xff1a;用来存放数组指针&#xff08;地址&#xff09;的数组 int main() {int arr1[] { 0 };int arr2[] { 0 };int arr3[] { 0 };int* p[3] { arr1,arr2,arr3 };//指针数组return 0; }那么函数指针数组&#xff0c;就是用来存放几个类型相同…

application.yml 或 application.properties 配置文件乱码问题

一、idea写application.yml配置文件&#xff0c; 用到了中文注释&#xff0c;写的时候好好地&#xff0c;但是运行项目后&#xff0c;出现乱码情况&#xff0c;如下&#xff1a; 二、解决方法 将文件编码方式 设置成UTF-8即可 File-Setting-Editor-File Encodings 再次运行项…

「2024」预备研究生mem-一元二次不等式恒成立高次、分次不等式(包含穿根法)

一、一元二次不等式恒成立 二、高次不等式&#xff08;包含穿根法&#xff09; 三、分次不等式 四、课后习题

蓝牙资讯|谷歌推迟上线Find My Device,需等到苹果同步跟进

谷歌今年 5 月初宣布推出“寻找我的设备”&#xff08;Find My Device Network&#xff09;&#xff0c;目标是为全球超过 10 亿台安卓设备服务&#xff0c;帮助用户寻找丢失的设备。 谷歌在今年 5 月宣布&#xff0c;Find My Device 网络将兼容 Tile、Pebblebee 和 Chipolo …

aws中opensearch 日志通(Centralized Logging with OpenSearch)2.0(一)

aws日志通2.0 实现全面的日志管理和分析功能 一体化日志摄取 &#xff1a;把aws服务器日志和应用日志传输到opensearch域中无代码日志处理 &#xff1a;在网页控制台中就可以实现数据处理开箱即用 &#xff1a;提供可视化模版&#xff08;nginx、HTTP server &#xff09; 架构…

方法的定义和格式

方法 什么是方法&#xff1f; 方法是程序中最小的执行单元 定义&#xff1a;把一些代码打包在一起&#xff0c;该过程称为方法 实际开发过程中&#xff0c;什么时候用到方法&#xff1a; 重复的代码&#xff0c;具有独立功能的代码可以抽取到方法中 实际开发中&#xff0c;方…

【容器编排】初识 Kubernetes

目录 1.简介 2.为什么需要 k8s 3.k8s 能做什么? 4.k8s 不是什么? 1.简介 摘取官网: 概述 | Kubernetes Kubernetes 这个名字源于希腊语&#xff0c;意为舵手或飞行员。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。 Kub…

Vue3自定义封装音频播放器

&#x1f680; 本片主要讲解如何使用Vue3去封装一个音频播放器&#xff0c;以及解决在ios微信浏览器中 无法获取音频时长问题 一、效果图 二、解决在微信环境中ios无法获取音频时长问题 1、安装weixin-js-sdk cnpm i weixin-js-sdk --save2、使用&#xff0c;通过wx.ready中重…

【CAS6.6源码解析】深入解析TGT和ST的唯一ID是怎样生成的-探究ID生成器的设计

CAS作为一款企业级中央认证服务系统&#xff0c;其票据的生成是非常重要的一环&#xff0c;在票据的生成中&#xff0c;有一个比较重要的点就是为票据生成唯一ID&#xff0c;本文将深入解析CAS系统中的TGT和ST的唯一ID是怎样生成的。 文章重点分析源码的过程&#xff0c;不想看…

W2NER详解

论文&#xff1a;https://arxiv.org/pdf/2112.10070.pdf 代码&#xff1a;https://github.com/ljynlp/W2NER 文章目录 W2NER介绍模型架构解码 源码介绍数据输入格式模型代码 参考资料 W2NER 介绍 W2NER模型&#xff0c;将NER任务转化预测word-word&#xff08;备注&#xff…

基于flask旅游大数据可视化分析推荐系统-计算机毕设 附源码10903

flask旅游大数据可视化分析推荐系统 摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对旅游大…

味知香VS千味央厨,谁是预制菜新王?

夏日炎炎&#xff0c;预制菜赛道的下半场也硝烟弥漫&#xff0c;可谓“冰火两重天”。 预制菜赛道两大“玩家”&#xff1a;“预制菜第一股”味知香(605089.SH&#xff09;、“餐饮供应链第一股”千味央厨(001215.SZ)均于近日公布了2023年一季报&#xff0c;其业绩有所分化。 …

3D Web轻量化渲染开发工具HOOPS Communicator是什么?

HOOPS Communicator是Tech Soft 3D旗下的主流产品之一&#xff0c;具有强大的、专用的高性能图形内核&#xff0c;是一款专注于基于Web端的高级3D工程应用程序。由HOOPS Server和HOOPS Web Viewer两大部分组成&#xff0c;提供了HOOPS Convertrer、Data Authoring的模型转换和编…

考试系统对教育评估的作用和意义

随着现代教育的发展&#xff0c;考试系统已经成为评估学生学业水平的重要工具。考试系统通过量化学生的知识掌握程度、学术能力和解决问题的能力&#xff0c;为教育评估提供了客观的数据基础。 考试系统能够帮助学校和教育部门全面了解学生的学习状况。通过考试结果&#xff0…

2023东三省“深圳杯”A题全保姆论文讲解

A题 影响城市居民身体健康的因素分析 以心脑血管疾病、糖尿病、恶性肿瘤以及慢性阻塞性肺病为代表的慢性非传染性疾病&#xff08;以下简称慢性病&#xff09;已经成为影响我国居民身体健康的重要问题。随着人们生活方式的改变&#xff0c;慢性病的患病率持续攀升。众所周知&am…