JavaScript-----运算符与流程控制

news2024/11/28 15:41:13

目录

前言:

1. 运算符

1.1 算术运算符

1.2 赋值运算符

1.3 比较运算符

1.4 逻辑运算符

 2.流程控制

1.1 分支结构

switch语句

1.2 循环结构

while 循环  

for循环

循环控制 :

 1.3代码示例


前言:

        今天我们就开始学习JavaScript里面的运算符和流程控制,在此之前如果学过C语言的你们理解起来应该是轻而易举的,毕竟编程语言都是具有相通性的,好了,下面就开始学习吧!

1. 运算符

1.1 算术运算符

算术运算符也就是我们常见的加减乘除取模等等,以下表格一一列举出来

运算符描述示例
+加法运算符x + y 表示计算 x 加 y 的和
-减法运算符x - y 表示计算 x 减 y 的差
*乘法运算符x * y 表示计算 x 乘 y 的积
/除法运算符x / y 表示计算 x 除以 y 的商
%取模(取余)运算符x % y 表示计算 x 除以 y 的余数

1.2 赋值运算符

运算符描述示例
=将运算符右侧的值赋值给运算符左侧的变量x = 10 表示将变量 x 赋值为 10
+=先进行加法运算,再将结果赋值给运算符左侧的变量x += y 等同于 x = x + y
-=先进行减法运算,再将结果赋值给运算符左侧的变量x -= y 等同于 x = x - y
*=先进行乘法运算,再将结果赋值给运算符左侧的变量x *= y 等同于 x = x * y
/=先进行除法运算,再将结果赋值给运算符左侧的变量x /= y 等同于 x = x / y
%=先进行取模运算,再将结果赋值给运算符左侧的变量x %= y 等同于 x = x % y

比较特殊的两个赋值运算符`自增1(++)、自减1(--)

  • 自增或自减运算符在单独与变量结合时,放前和放后没有区别(比如++a,a++ 效果是一样的)

  • 如果自增或自减运算符与其他运算符结合使用,要区分前缀和后缀,做前缀,先自加再使用,如果做后缀,先使用再自加

1.3 比较运算符

比较运算符的结算结果,永远都是一个布尔值,条件成立为true,不成立为false

运算符名称示例
==等于x == y 表示如果 x 等于 y,则为真
===全等x === y 表示如果 x 等于 y,并且 x 和 y 的类型也相同,则为真
!=不相等x != y 表示如果 x 不等于 y,则为真
!==不全等x !== y 表示如果 x 不等于 y,或者 x 和 y 的类型不同,则为真
<小于x < y 表示如果 x 小于 y,则为真
>大于x > y 表示如果 x 大于 y,则为真
>=大于或等于x >= y 表示如果 x 大于或等于 y,则为真
<=小于或等于x <= y 表示如果 x 小于或等于 y,则为真
  • 字符串与字符串之间的比较,依次比较每位字符的Unicode码,只要某位字符比较出结果,就返回最终结果(阿斯克吗进行比较)

  • 其他情况一律将操作数转换为number进行数值比较,如果某一操作数无法转换number,则变成NaN参与比较运算,结果永远是false

  • 相等与全等

    • 相等 : 不考虑数据类型,只做值的比较(包含自动类型转换)

    • 全等 : 要求数据类型一致并且值相等才判断全等

1.4 逻辑运算符

运算符名称示例
&&逻辑与x && y 表示如果 x 和 y 都为真,则为真
||逻辑或x || y 表示如果 x 或 y 有一个为真,则为真
!逻辑非!x 表示如果 x 不为真,则为真

逻辑运算符在运算时,会在计算时,临时将运算数转换为布尔值。

与运算时,a被转为布尔值true,根据与运算符的特性,true通过了,所以取到右边的值。c就等于右边的值2

JS中所有的值只有如下6个值可以转为false,除了这6个值,其他的都是转为true

  1. 数字:NaN

  2. 空指针:null

  3. 未定义:undefined

  4. 数字:0

  5. 布尔值:false

  6. 空字符串:""

 逻辑运算符的执行

&& 如果执行与运算时,如果左边的表达式成立就执行右边的表达式,如果左边的表达式不处理就返回false (真真为真,真假为假)

|| 如果执行或运算时,如果左边的表达式成立就直接返回左边的表达式结果,不执行右边的表达式;如果左边的表达式不成立就执行右边的表达式,当两边的表达式都不成立的话就返回false (真假为真,假假为假)

        let a=false;
        let b='www';
        let c=1;
        console.log(a&&b); //结果为false
        console.log(c&&b); //结果为www

        let x=0;
        let y='hello';
        console.log(x||y); //结果为hello

 2.流程控制

流程控制:控制我们代码执行顺序,而程序的执行顺序分为三种结构:顺序结构、分支结构、循环结构

  • 顺序结构就是让程序按照从头到尾的顺序依次执行每一条代码,不重复执行任何代码,也不跳过任何代码。

  • 选择结构也称分支结构,就是让程序“拐弯”,有选择性的执行代码

  • 循环结构就是让程序“杀个回马枪”,重复执行同一段代码。

JavaScript里面的流程控制跟C语言基本上是一模一样的语法的,如果你会C语言的话,下面的内容基本上都可以说是完全掌握了。 

1.1 分支结构

  • 分支结构:根据条件选择执行代码,这种就叫分支结构

  • 分支语句包含:If分支语句、switch 语句

  • if语句有三种使用:单分支、双分支、多分支

// 单分支: 当条件表达式成立,即结果为布尔值 true 时,就会执行{ }中的代码。
if(条件){
	// 条件成立时执行
}
// 双分支:单分支的升级版,它不仅可以指定当表达式成立时要执行的代码,还可以指定当表达式不成立时要执行的代码
if(条件){
	// 条件成立时执行
}else{
	// 条件不成立时选择执行
}
// 多分支:允许您定义多个条件表达式,并根据表达式的结果执行相应的代码

if(条件1){
    //条件1成立时执行
}else if(条件2){
    //条件2成立时执行
}else if(条件3){
    //条件3成立时执行
}...else{
    //条件不成立时执行
}

switch语句

  • switch语句用于值的匹配,case用于列出所有可能的值;只有switch()表达式的值与case的值匹配全等时,才会执行case对应的代码段

  • break用于结束匹配,不再向后执行;可以省略,break一旦省略,会从当前匹配到的case开始,向后执行所有的代码语句,直至结束或碰到break跳出

  • default用来表示所有case都匹配失败的情况,一般写在末尾,做默认操作

switch(value){
	 case 值1 :
	 // value与值1匹配全等时,执行的代码段
	 break; // 结束匹配
	 case 值2 :
	 // value与值2匹配全等时,执行的代码段
	 break;
	 case 值3 :
     // value与值3匹配全等时,执行的代码段
	 break;
	 default:
 	 // 所有case匹配失败后默认执行的语句
 	 break;
}

1.2 循环结构

作用:根据条件,重复执行某段代码

while 循环  

//定义循环变量;
while(循环条件){
  //  条件满足时执行的代码段
   // 更新循环变量;
}

for循环

for(定义循环变量;循环条件;更新循环变量){
	//循环体;
}

循环控制 :

  1. break 强制结束循环

  2. continue 结束当次循环,开始下一次循环

 1.3代码示例

给定一个数组[9,5,1,4,3,7,6,11,2,20] 通过冒泡排序法进行排序(JavaScript实现)

let a=[9,5,1,4,3,7,6,11,2,20] ;
        for(let i=0;i<a.length;i++){
            for(let j=0;j<a.length-1;j++){
                if(a[j]>a[j+1]){
                let b=a[j];
                a[j]=a[j+1];
                a[j+1]=b;
                }
            }
        }
        console.log(a)
        //输出结果: [1, 2, 3, 4, 5, 6, 7, 9, 11, 20]

以上就是今天的全部内容了,我们下一期再见!

分享一张壁纸:

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

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

相关文章

【校招VIP】测试开发之字符串算法

考点介绍&#xff1a; 字符串匹配看起来是个很简单、很成熟的问题&#xff0c;但在很多领域都有着很多的应用&#xff0c;比如模式匹配、特征提取等等。字符串算法是很经典的面试题&#xff0c;既考察了求职者的写用例水平又考察了软件测试求职者的编码水平。 测试开发之字符串…

景联文数据标注:AI大模型在教育和医疗领域的应用

8月31日消息&#xff0c;备受行业瞩目的首批大模型产品获批名单发布&#xff0c;首批通过备案的8家大模型公司分别是&#xff1a;百度&#xff08;文心一言&#xff09;、抖音&#xff08;云雀大模型&#xff09;、智谱AI&#xff08;GLM大模型&#xff09;、中科院&#xff08…

centos7上hive3.1.3安装及配置

1、安装背景&#xff1b; hive是基于hadoop的数据仓库软件&#xff0c;部署运行在linux系统之上&#xff0c;安装之前必须保证hadoop环境运行正常&#xff0c;hive本身不是分布式软件&#xff0c;它的分布式主要是借助hadoop实现&#xff0c;存储是hdfs&#xff0c;计算是mapr…

彻底学会Unity从网上加载资源到场景

使用类WWW 该类实例化的对象可以存储多种多媒体资源&#xff0c;只需要在构造函数中附上可访问的资源链接 Unity 中&#xff0c;WWW 类用于实例化互联网上的资源&#xff0c;如文本、图像、音频和视频等。WWW 实例化的对象可以存储多种多媒体素材。以下是一些常见的例子&…

Kubernetes(k8s) 架构原理一文详解

目录 一、k8s 概述 1.什么是k8s&#xff1f; 2.特性 3.主要功能 三、集群架构与组件 1.Master 组件 &#xff08;1&#xff09;Kube-apiserver &#xff08;2&#xff09;Kube-controller-manager &#xff08;3&#xff09;Kube-scheduler 2.配置存储中心 3.Node 组…

Cell Reports | 揭开METTL14在介导m6A修饰中的神秘面纱

m6A被认为是最丰富的mRNA修饰&#xff0c;广泛分布在大多数真核生物中&#xff0c;包括哺乳动物、植物、昆虫、酵母和某些病毒。m6A修饰的沉积和去除之间的动态平衡对于正常的生物过程和发育至关重要&#xff0c;如失调通常与癌症等疾病有关。m6A修饰由m6A甲基转移酶复合物&…

C++多态案例3----组装电脑含测试代码

案例描述: 电脑主要组成部件为 CPU (用于计算) &#xff0c;显卡 (用于显示) &#xff0c;内存条 (用于存储)将每个零件封装出抽象基类&#xff0c;并且提供不同的厂商生产不同的零件&#xff0c;例如Intel厂商和Lenovo厂商创建电脑类提供让电脑工作的函数&#xff0c;并且调用…

nc前端合计行、按钮组

nc前端合计行、按钮组 1.无表体和单表体的合计行加法 只要卡片下 如果是只有表头要合计行就只留ShowTotalLine&#xff1b;如果是只有表体要合计行就只留ShowTotalLineTabcodes 2.多表体的合计行加法 表头卡片下和列表下都要 3.档案的合计行加法 重写一下列表模板 …

9.4作业

服务器 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);servernew QTcpServer(this); }Widget::~Widget() {delete ui; }void Widget::on_pushButton_clicked(…

PhpStorm软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 PhpStorm是一款由JetBrains开发的专业PHP集成开发环境&#xff08;IDE&#xff09;&#xff0c;旨在提供全面的PHP开发支持。它是基于IntelliJ IDEA平台构建的&#xff0c;具有强大的功能和工具&#xff0c;可以帮助开发人员提高…

VIOOVI解析:如何进行工时测定?什么工时测定软件比较准确?

通常来说&#xff0c;在正常的操作条件下&#xff0c;普通且熟练的工人用正常的作业速度完成工作所需要的时间&#xff0c;我们将之称为标准工时。 标准工时的准确性对整个企业的生产经营起着至关重要的作用。错误的工时测定&#xff0c;提供的数据往往会引发企业高层决策上的…

【Java】Java虚拟线程开启preview

JEP 425:虚拟线程(预览版)最近被提出。这是java中一个期待已久的特性。我想试一试。所以我下载了JDK的早期版本&#xff0c;其中包含了这个项目。然而&#xff0c;它还在预览阶段。 SDK19、IntelliJ IDEA Community Edition 2023.1.4 代码&#xff1a; package com.example.…

计算机竞赛 基于深度学习的人脸表情识别

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的人脸表情识别 该项目较…

唯品会API接口解析,实现获得按关键字搜索vip商品

要解析唯品会API接口并实现按关键字搜索VIP商品&#xff0c;你需要进行以下步骤&#xff1a; 了解唯品会API接口文档&#xff1a;访问唯品会开放平台&#xff0c;找到API文档&#xff0c;了解唯品会提供的API接口以及相关的参数、返回值等信息。注册开发者账号&#xff1a;在唯…

【Unity-Cinemachine相机】虚拟相机旋转Composer属性详解

Look At和Aim本质是控制虚拟相机自身的旋转&#xff0c;并不一定非要看着&#xff0c;或者并不一定非要瞄着这里的游戏对象 Look At和Aim是以Look At里面的对象作为参考来旋转自身 Do nothing&#xff1a;表现出来的行为和Look At空出来一样 Composer&#xff1a;是一个标准的…

如何搭建“实战化”的统一系统脆弱性管理平台

面对层出不穷的漏洞&#xff0c;如何搭建“实战化”的统一系统脆弱管理平台&#xff0c;是网络安全厂商和客户比较头痛的事情。日前&#xff0c;国内专注于保密与非密领域的分级保护、等级保护、业务连续性安全和大数据安全产品解决方案与相关技术研究开发的领军企业——国联易…

微信小程序商城的定义、特点、优势、未来发展方向

微信小程序商城是一种新兴的电子商务模式&#xff0c;近年来风头火势&#xff0c;深受商家和消费者的喜爱。它是基于微信平台开发的一种小程序&#xff0c;用户可以通过微信进行搜索、购买商品或服务&#xff0c;实现线上购物的便利。本文将从微信小程序商城的定义、特点、优势…

5分钟带你了解什么是敏捷测试?难点显而易见!

随着敏捷开发模式的普及&#xff0c;越来越多的测试同仁也开始了敏捷测试。那么究竟什么是敏捷测试&#xff1f;敏捷测试与传统测试的主要区别是什么&#xff1f;敏捷测试的难点又是什么&#xff1f;本文会对这三个问题进行讲解。注意&#xff1a;本文只是讲解敏捷测试概念相关…

手写Mybatis:第20章-Mybatis 框架源码10种设计模式分析

文章目录 一、类型&#xff1a;创建型模式1.1 工厂模式1.2 单例模式1.3 建造者模式 二、类型&#xff1a;结构型模式2.1 适配器模式2.2 代理模式2.3 组合模式2.4 装饰器模式 三、类型&#xff1a;行为型模式3.1 模板模式3.2 策略模式3.3 迭代器模式 一、类型&#xff1a;创建型…

Kolya and Movie Theatre

Recently, Kolya found out that a new movie theatre is going to be opened in his city soon, which will show a new movie every day for nn days. So, on the day with the number 1≤i≤n, the movie theatre will show the premiere of the ii-th movie. Also, Kolya f…