JavaScript基础——JavaScript运算符

news2024/9/21 3:20:55

赋值运算符

算术运算符

一元运算符

三元/三目运算符

比较运算符

逻辑运算符

 运算符优先级


        在JavaScript中,常见的运算符可以包括赋值运算符、一元运算符、算术运算符(二元运算符)、三元/三目运算符、比较运算符、逻辑运算符等(其他不常见的这里不说明)。

赋值运算符

        赋值运算符用于给变量赋值,如=+=-=*=/=%=**=&=|=^=<<=>>=>>>=。 

        常见的符号是“=”,表示赋值,假设现在有一个user变量,user="admin",表示将字符串"admin"赋值给user变量。如下:

         +=、-=、*=、/=、%=都是用于变量自身与其他变量(常量)做数学运算,例如,a+=1,相当于a=a+1,也就是将a+1的结果赋值给a,其他符号同理。

        a-=1 ,相当于a=a-1,也就是将a-1的结果赋值给a。

        a/=2 ,相当于a=a/2,也就是将a/2的结果赋值给a。

        a*=2 ,相当于a=a*2,也就是将a*2的结果赋值给a。 

        a%=3 ,相当于a=a%3,也就是将a%3的结果赋值给a。 

        完整代码如下:

    <script>

        // 1)赋值运算符
        var user = "admin";
        console.log(user);//'admin'

        var a = 10;
        console.log(a);
        a += 1;
        console.log(a);

        var a = 10;
        console.log(a);
        a -= 1;
        console.log(a);

        var a = 10;
        console.log(a);
        a /= 2;
        console.log(a);

        var a = 10;
        console.log(a);
        a *= 2;
        console.log(a);

        var a = 10;
        console.log(a);
        a %= 3;
        console.log(a);

    </script>

算术运算符

        算术运算符又称为二元运算符,也就是需要两个操作数,算术运算符用于执行基本的数学运算,如+(加)、-(减)、*(乘)、/(除)、%(取余)、**(幂运算符)、++(自增运算符)、--(自减运算符)

        其中,+(加)、-(减)、*(乘)、/(除)、%(取余)、**(幂运算符)与数学计算完全相同,代码如下:

         完整代码如下:

    <script>

        // 2)算术运算符
        console.log(1 + 2);
        console.log(1 - 1);
        console.log(1 * 1);
        console.log(1 / 1);
        console.log(12 % 10);
        console.log(2 ** 2);


    </script>

一元运算符

        自增自减运算符(++、--)包括前置自增自减(++n、--n)运算符和后置自增自减(n++、n--)运算符,两者在计算上有区别。

        前置自增自减(++n、--n)运算符是先计算后输出后置自增自减(n++、n--)运算符是先输出后计算

        假设定义一个变量a,值为10,定义一个变量b,值为20,分别利用前置自增和后置自增来观察两者的区别,可以发现前置自增计算的a输出后为11,后置自增计算的b输出的值为20,再次输出才为21。

        代码如下:

    <script>

        var a = 10;
        console.log(a);
        console.log(++a);
        console.log(a);

        var b = 20;
        console.log(b);
        console.log(b++);
        console.log(b);

    </script>

三元/三目运算符

         三元运算符也叫做条件运算符,需要三个操作数,形式如条件是否成立?执行代码1:执行代码2,返回的是一个值。

条件是否成立?成立执行代码:不成立执行代码

        var d = b > c ? b : c; 表示将获得的值赋给d,条件是b是否大于c,如果大于(成立),返回b的值,如果小于(不成立),返回c的值。

        完整代码如下:

    <script>
        // 条件判断的表达式
        // 三元运算
        // 条件是否成立?执行代码1:执行代码2
        var b = 10;
        var c = 20;
        var d = b > c ? b : c;
        console.log(d);

        // 定义变量记录小时
        var h = 6;
        var v = h < 10 ? '0' + h : h;
        console.log(v);

        1 > 2 ? console.log("条件成立") : console.log("条件不成立");
        false ? console.log("条件成立") : console.log("条件不成立");
        true ? console.log("条件成立") : console.log("条件不成立");

    </script>

比较运算符

        比较运算符用于比较两个值,如=====!=!==>>=<<=,两个数比较后输出的是布尔值(true/false) 

        其中,>>=<<=运算符与数学中的运算符完全一致,比较后输出布尔值。

        代码如下: 

    <script>

        // 3) 比较运算符
        console.log(1 > 2);
        console.log(1 < 2);

        console.log(1 >= 2);
        console.log(1 <= 2);


    </script>

         “==”、“===”符号用于比较两个数是否相等,返回值也是布尔值,其中“==”仅比较两个数的值,如果数据类型不相等,只要值相等就是true,“===”比较两个数的值以及数据类型,只有数据类型和值都相同才为true。

        完整代码:

    <script>

        console.log(1 == '1');
        console.log(1 == 2);

        console.log(1 === '1');
        console.log(1 === 1);

    </script>

         “!=”、“!==”符号与 “==”、“===”相反,用于比较两个数是否不相等,返回值也是布尔值,其中“!=”仅比较两个数的值,如果数据类型不相等,只要值不相等就是true,“!==”比较两个数的值以及数据类型,只有数据类型和值都不相等才为true。

        完整代码:

    <script>

        console.log(1 != '1');
        console.log(1 != 1);
        console.log(1 != 2);

        console.log(1 !== '1');
        console.log(1 !== 1);

    </script>

逻辑运算符

        逻辑运算符用于逻辑运算,如&&(逻辑与)、||(逻辑或)、!(逻辑非)。

符号名称日常读法特点口诀
&&逻辑与并且符号两边都为真(true),结果才为真(true)一假则假
||逻辑或或者符号一个为真(true),结果就为真(true)一真则真
!逻辑非取反真(true)变假(false),假(false)变真(true)真变假,假变真

        &&(逻辑与)表示条件两个或者以上,只要有一个条件不成立(是假),结果就不成立(是假)

        在&&(逻辑与)中,如果有一个为真,另一个有值,就把值赋给这个变量。 

        完整代码如下:

    <script>

        console.log(true && false);// false
        console.log(true && false && true && true);// false
        console.log(true && true && true && true);// true
        console.log(1 < 2 && 3 < 4 && 4 < 5 && 5 < 6);// true

        var k1 = true && false;
        console.log(k1);// false

        var k2 = false && true;
        console.log(k2);// false

        var k3 = true && true;
        console.log(k3);// true

        var k4 = true && 100;// 前者有值为true, 选择把后者的值赋给变量
        console.log(k4);// 100

    </script>

         ||(逻辑或)表示条件两个或者以上,只要有一个条件成立(真的),结果就成立(是真),只有条件都为不成立(假),才是不成立(假)。

        在 ||(逻辑或)中,如果有一个为空(空字符串、未定义等),另一个有值,就把值赋给这个变量。

        完整代码如下:

    <script>

        console.log(true || false);// true
        console.log(true || false || false || false);// true
        console.log(false || false || false || false);// false
        console.log(1 < 2 || 2 > 3 || 3 > 4 || 4 > 5);// true

        var v1 = true || false;
        console.log(v1);// true

        var v2 = false || true;
        console.log(v2);// true

        var v3 = "" || "hello world";// 前者没有值,就把后者的值赋给变量
        console.log(v3);// 'hello world'

        var v4 = undefined || 123;
        console.log(v4);// 123

    </script>

          ! (取反运算符)表示取相反的逻辑值,也就是说,如果是表达式是真,!(表达式)就是假,如果表达式是假,!(表达式)就是真。

         完整代码如下:

    <script>

        console.log(true);// true
        console.log(!true);// false
        console.log(!false);// true
        // (100 可以表示有值,有值表示true, 在true前面加叹号表示取相反的值)
        console.log(!100);// false   

    </script>

 运算符优先级

        在含多个运算符时,按照优先级进行计算,优先级越小,越先计算。

优先级运算符顺序
1小括号()
2一元运算符++、--、!
3算术运算符先*/ 后 +-
4关系运算符>、>=、<、<=
5相等运算符==、===、!=、!==
6逻辑运算符先&&后||
7赋值运算符=
8逗号运算符,

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

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

相关文章

centos7安装zabbix

可以联网的centos7系统 关闭防火墙 selinux也关了 1、配置镜像源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo2、安装nginx并配置 yum ins…

uniapp全局分享功能实现方法(依赖小程序右上角的分享按钮)

1、uniapp开发小程序时默认是关闭分享功能的。点击右上角三个点可查看&#xff0c;效果图如下&#xff1a; 2、在utils文件夹下新建share.js文件&#xff0c;名字任起。&#xff08;使用的是全局分享&#xff0c;因为一个一个页面的去分享太麻烦且没必要。&#xff09; export…

万字长文分享快手 Kolors 可图大模型应用实践

导读 在企业提效方面&#xff0c;多模态能力同样具有重要意义。在 AICon 北京站活动中&#xff0c;快手「可图」大模型负责人李岩分享了主题为《快手「可图」文生图大模型应用实践》的演讲&#xff0c;以下为李岩演讲内容&#xff5e;期待对你有所启发&#xff01; 一、基座模…

docker部署java项目(war包方式)

场景描述:java项目war包,在开发开电脑上使用dockerfile构建镜像,上传镜像到客户服务器中使用docker加载docker镜像,然后部署。 目录 一、本地环境安装 docker git 二、服务器环境安装 docker 三、构建docker镜像(win系统) 四、注意事项 (1)系统架构 (2)使…

线程(Pthread)

目录 多线程模式下cpu如何分配 这两种线程的优缺点 多个线程在进程中共享资源有哪些 非共享资源 线程函数&#xff08;NPTL API&#xff09; 线程分离态 线程退出方式 关于线程的能力 线程属性 线程是大多数操作系统支持的调度单位&#xff0c;执行单元&#xff0c;某…

【全国大学生电子设计竞赛】2022年F题

&#x1f970;&#x1f970;全国大学生电子设计大赛学习资料专栏已开启&#xff0c;限时免费&#xff0c;速速收藏~

RabbitMQ高级特性 - 事务消息

文章目录 RabbitMQ 事务消息概述实现原理代码实现不采用事务采用事务 RabbitMQ 事务消息 概述 RabbitMQ 的 AMQP 协议实现了事务机制&#xff0c;允许开发者保证消息的发送和接收时原子性的&#xff0c;也就是说&#xff0c;要么消息全都发送成功&#xff0c;要么全都发送失败…

《python语言程序设计》2018版第6章第27题双素数是指一堆差值为2的素数。

水平的原因做不到答案那种输出 def is_prime(number):divisor 2while divisor < number / 2:if number % divisor 0:return Falsedivisor 1return Truedef print_prime_numbers(number_of_primes):count 0number 2while number < number_of_primes:if is_prime(numb…

六、GD32 MCU 选项字节设置及解除方法

您在使用GD32过程中是否遇到过芯片反复复位&#xff0c;代码无法更新&#xff0c;代码一直执行在0x1fffxxxx区域&#xff0c;或代码执行在SRAM区域的情况&#xff1f;如果有遇到这类现象是否找到原因呢&#xff1f;如果没找到是否检查过选项字节是否正常呢&#xff1f;这一章节…

C++ | 类和对象(下)(static成员、友元、内部类、匿名对象)

目录 ​编辑 static成员 static性质简介 static属于整个类&#xff0c;属于所有对象 static成员的声明与定义 static函数 友元friend 友元特性简介 友元关系讲解 内部类 特性一 特性二 匿名对象 结语 static成员 static性质简介 static成员在类里面是非常独特的…

ContentProvider的相关知识总结

1.ContentProvider概念讲解&#xff1a; 2.使用系统提供的ContentProvider 其实很多时候我们用到ContentProvider并不是自己暴露自己的数据&#xff0c;更多的时候通过 ContentResolver来读取其他应用的信息&#xff0c;最常用的莫过于读取系统APP&#xff0c;信息&#xff0c…

Kubernetes中的CRI、CNI与CSI:深入理解云原生存储、网络与容器运行时

引言 随着云原生技术的飞速发展&#xff0c;Kubernetes&#xff08;简称K8s&#xff09;作为云原生应用的核心调度平台&#xff0c;其重要性日益凸显。K8s通过开放一系列接口&#xff0c;实现了高度的可扩展性和灵活性&#xff0c;其中CRI&#xff08;Container Runtime Inter…

使用归一化连接计数的胸部CT成像:预测CanCOLD研究中的肺气肿进展| 文献速递-AI辅助的放射影像疾病诊断

Title 题目 CT Chest Imaging Using Normalized Join-Count: Predicting Emphysema Progression in the CanCOLD Study 使用归一化连接计数的胸部CT成像&#xff1a;预测CanCOLD研究中的肺气肿进展 Background 背景 Pre-existing emphysema is recognized as an indicator…

【C++】------继承(一)

目录 前言 一、概念与定义 Ⅰ、是什么&#xff1f; Ⅱ、定义 1.定义格式&#xff1a; 2.继承方式和访问限定符 3.基类&#xff08;父类&#xff09;成员访问方式的变化 二、父类与子类的赋值转化 基本认识 原理 三、 继承中的作用域 四、子类(派生类)的默认成员函…

Spring中是如何实现IoC和DI的?

前言&#xff1a;在前一篇文章中对于IoC的核心思想进行了讲解&#xff0c;而本篇文章则从Spring的角度入手&#xff0c;体会Spring对于IoC是如何实现的。 如果对IoC还有不太了解的可以阅读上一篇文章&#xff0c;相信一定会带来全新的收获&#xff1a;什么是IoC&#xff08;控制…

5.5软件工程-系统测试

系统测试 意义和目的原则测试过程测试策略测试方法练习题 测试用例设计黑盒测试等价类划分边界值分析错误推测因果图 白盒测试逻辑覆盖循环覆盖基本路径测试法 练习题 调试软件度量练习题 考点少&#xff0c;知识点多 意义和目的 系统测试的意义&#xff1a;系统测试是为了发现…

浅谈Redis集群架构与主从架构

目录 1. Redis集群1.1 集群概念1.2 集群分片1.3 重新分片 2. 集群的主从模型2.1 主从模型2.2 主节点选举 1. Redis集群 1.1 集群概念 面试官&#xff1a;我看你简历写了Redis集群&#xff0c;你说一说&#xff1f; Redis主从架构和Redis集群架构是两种不同的概念&#xff0c;大…

【Spring成神之路】从源码角度深度刨析Spring循环依赖

文章目录 一、引言二、循环依赖出现的场景2.1 有参构造导致的循环依赖问题2.2 属性注入出现的依赖问题2.3 Spring IOC创建Bean的流程2.4 有参构造为何失败2.5 属性注入为何能成功2.6 AOP导致的循环依赖 三、Spring循环依赖源码刨析四、Spring循环依赖案例刨析 一、引言 循环依…

【MATLAB源码】数学建模基础教程---初步认识数学建模

系列文章目录在最后面&#xff0c;各位同仁感兴趣可以看看&#xff01; 什么是数学建模 含义1.区分数学模型和数学建模2. 建立数学模型的注意事项3.数学建模流程图解4.数学建模模型分类5.论文常用套路6.最后&#xff1a;总结系列文章目录 含义 所谓数学建模&#xff0c;简言…

Python 中实现聊天客户端库

在 Python 中实现一个简单的聊天客户端库可以通过使用 socket 模块来处理网络通信。我们可以构建一个基于 TCP 的简单聊天系统&#xff0c;其中包括一个服务器和一个客户端。 1、问题背景 假设您正在尝试编写一个 Python 库&#xff0c;用于实现某个聊天协议的客户端。在连接…