13 JavaScript学习:运算符

JavaScript 运算符

在这里插入图片描述

JavaScript 中有多种类型的运算符,包括以下几类:

  1. 算术运算符:用于执行基本的数学运算,如加法(+)、减法(-)、乘法(*)、除法(/)和求余(%)。
  2. 赋值运算符:用于给变量赋值,如等号(=)、加等(+=)、减等(-=)等。
  3. 比较运算符:用于比较两个值,返回布尔值 true 或 false,如相等()、全等(=)、不相等(!=)、大于(>)、小于(<)等。
  4. 逻辑运算符:用于组合多个表达式,返回布尔值,如与(&&)、或(||)、非(!)等。
  5. 条件运算符(三元运算符):根据指定条件选择执行不同的代码路径,格式为 condition ? expr1 : expr2。
  6. 自增和自减运算符:用于增加或减少变量的值,包括前置自增(++x)、后置自增(x++)、前置自减(–x)、后置自减(x–)。
  7. 位运算符:对操作数的二进制形式执行位运算,如按位与(&)、按位或(|)、按位取反(~)、按位异或(^)等。
  8. 字符串运算符:用于连接字符串,即将两个字符串值合并为一个,常用的是加号(+)。
  9. 类型运算符:用于确定变量的数据类型,包括 typeof 运算符和 instanceof 运算符。
  10. 其他运算符:包括条件运算符(?:)、逗号运算符(,)等。

以上是 JavaScript 中常用的运算符,它们可以用于执行各种操作,实现复杂的逻辑和计算。

JavaScript 算术运算符

在这里插入图片描述

JavaScript 中的算术运算符用于执行基本的数学运算,常见的算术运算符包括加法(+)、减法(-)、乘法(*)、除法(/)和求余(%)。下面是这些运算符的详细解释和举例:

  1. 加法运算符(+):
    用于将两个值相加。

    var x = 5;
    var y = 3;
    var sum = x + y; // 结果为 8
    
  2. 减法运算符(-):
    用于从第一个操作数中减去第二个操作数。

    var x = 5;
    var y = 3;
    var difference = x - y; // 结果为 2
    
  3. 乘法运算符(*):
    用于将两个值相乘。

    var x = 5;
    var y = 3;
    var product = x * y; // 结果为 15
    
  4. 除法运算符(/):
    用于将第一个操作数除以第二个操作数。

    var x = 6;
    var y = 3;
    var quotient = x / y; // 结果为 2
    
  5. 求余运算符(%):
    返回除法操作的余数。

    var x = 7;
    var y = 3;
    var remainder = x % y; // 结果为 1
    

这些算术运算符在 JavaScript 中非常常用,可以用于执行各种数学计算,并且可以组合使用以实现复杂的运算逻辑。

JavaScript 赋值运算符

JavaScript 中的赋值运算符用于给变量赋值,常见的赋值运算符有以下几种:

  1. 等号赋值(=):将右侧的值赋给左侧的变量。

    var x = 10; // 将值 10 赋给变量 x
    
  2. 加等赋值(+=):将右侧的值加到左侧的变量上,并将结果赋给左侧的变量。

    var x = 5;
    x += 3; // 相当于 x = x + 3,此时 x 的值为 8
    
  3. 减等赋值(-=):将右侧的值从左侧的变量中减去,并将结果赋给左侧的变量。

    var x = 10;
    x -= 4; // 相当于 x = x - 4,此时 x 的值为 6
    
  4. 乘等赋值(*=):将左侧的变量乘以右侧的值,并将结果赋给左侧的变量。

    var x = 3;
    x *= 2; // 相当于 x = x * 2,此时 x 的值为 6
    
  5. 除等赋值(/=):将左侧的变量除以右侧的值,并将结果赋给左侧的变量。

    var x = 10;
    x /= 2; // 相当于 x = x / 2,此时 x 的值为 5
    

赋值运算符可以简化代码并实现快速的赋值操作,是 JavaScript 中非常常用的运算符之一。

JavaScript 连接运算符+

JavaScript中的连接运算符+在不同的情况下有不同的功能:

  1. 字符串拼接:当+两侧的操作数中至少有一个是字符串时,+会执行字符串拼接操作。

    var firstName = "Alice";
    var lastName = "Smith";
    var fullName = firstName + " " + lastName; // fullName 的值为 "Alice Smith"
    
  2. 数字相加:当+两侧的操作数都是数字时,+会执行加法操作。

    var x = 5;
    var y = 3;
    var sum = x + y; // sum 的值为 8
    
  3. 数字字符串转换后相加:如果+两侧的操作数中有一个是字符串,另一个是数字,那么数字会被转换成字符串进行拼接。

    var x = 5;
    var y = "3";
    var result = x + y; // result 的值为 "53",而不是 8
    
  4. 表达式拼接+ 还可以将表达式拼接在一起。

    var message = "The result is: " + (5 + 3); // message 的值为 "The result is: 8"
    

在 JavaScript 中,+ 运算符具有重载的特性,其行为会根据操作数的类型而动态变化。因此,在使用+ 运算符时,需要根据具体的情况来理解它的功能。

JavaScript比较运算符

当涉及比较运算符时,JavaScript中的值将被比较并产生一个布尔值(true或false),以下是一些常见的比较运算符和它们的详细解释以及举例:

  1. 相等操作符(==):

    • 描述:比较两个值时会先进行类型转换,然后再比较值是否相等。

    • 示例:

      5 == 5 // true
      5 == '5' // true,因为 '5' 被转换为数字 5
      5 == 3 // false
      'hello' == 'world' // false
      
  2. 严格相等操作符(===):

    • 描述:比较两个值时,不会进行类型转换,需要值和类型都相等才返回true。

    • 示例:

      5 === 5 // true
      5 === '5' // false,因为类型不同
      
  3. 不相等操作符(!=):

    • 描述:比较两个值是否不相等,进行了类型转换之后再比较。

    • 示例:

      5 != 3 // true
      5 != '5' // false,因为 '5' 被转换为数字 5,与左侧值相等
      
  4. 严格不相等操作符(!==):

    • 描述:比较两个值是否不相等,不进行类型转换。

    • 示例:

      5 !== '5' // true,因为类型不同
      5 !== 5 // false
      
  5. 大于操作符(>)小于操作符(<):

    • 描述:用于比较两个值的大小关系。

    • 示例:

      5 > 3 // true
      5 < 3 // false
      
  6. 大于等于操作符(>=)小于等于操作符(<=):

    • 描述:用于比较两个值的大小关系,包括等于情况。

    • 示例:

      5 >= 5 // true
      5 <= 3 // false
      

以上是一些常见的比较运算符以及相应的示例。在编写JavaScript代码时,合理使用这些比较运算符可以实现各种条件判断和逻辑控制。

JavaScript逻辑运算符

逻辑运算符用于在逻辑语句中组合多个条件,以下是JavaScript中常见的逻辑运算符及其含义:

  1. 逻辑与(&&):如果两个条件都为真,则返回真;否则返回假。

    • 示例:

      (5 > 3) && (7 < 10) // true,因为两个条件都为真
      (5 > 3) && (7 > 10) // false,因为第二个条件为假
      
  2. 逻辑或(||):如果至少有一个条件为真,则返回真;否则返回假。

    • 示例:

      (5 > 3) || (7 < 10) // true,因为至少有一个条件为真
      (5 > 3) || (7 > 10) // true,因为第一个条件为真
      
  3. 逻辑非(!):用于取反,如果条件为真,则返回假;如果条件为假,则返回真。

    • 示例:

      !(5 > 3) // false,因为条件为真,取反后为假
      !(7 < 10) // false,因为条件为真,取反后为假
      

逻辑运算符常用于条件语句中,可以根据多个条件的组合来确定执行的逻辑。在编写JavaScript代码时,灵活运用逻辑运算符可以实现复杂的逻辑控制和条件判断。

JavaScript位运算符

位运算符是用来对数字的二进制位进行操作的特殊运算符。在JavaScript中,有以下几种常见的位运算符:

  1. 按位与(&):将两个数转为二进制后,对应位上的数字都为1才为1,否则为0。

    • 示例:

      5 & 3 // 输出结果为 1,因为 5 的二进制是 101,3 的二进制是 011,按位与后变成 001,即为 1
      
  2. 按位或(|):将两个数转为二进制后,对应位上的数字只要有一个为1就为1,否则为0。

    • 示例:

      5 | 3 // 输出结果为 7,因为 5 的二进制是 101,3 的二进制是 011,按位或后变成 111,即为 7
      
  3. 按位异或(^):将两个数转为二进制后,对应位上的数字相同为0,不同为1。

    • 示例:

      5 ^ 3 // 输出结果为 6,因为 5 的二进制是 101,3 的二进制是 011,按位异或后变成 110,即为 6
      
  4. 按位非(~):操作数的每一位取反,即0变为1,1变为0。

    • 示例:

      ~5 // 输出结果为 -6,因为 5 的二进制是 000...0101,取反后变成 111...1010(负数补码表示)
      
  5. 左移(<<):将数字的二进制码向左移动指定的位数,低位补零。

    • 示例:

      5 << 1 // 输出结果为 10,因为 5 的二进制是 101,左移1位后变成 1010,即为 10
      
  6. 右移(>>):将数字的二进制码向右移动指定的位数,高位补符号位(正数补0,负数补1)。

    • 示例:

      5 >> 1 // 输出结果为 2,因为 5 的二进制是 101,右移1位后变成 10,即为 2
      
  7. 无符号右移(>>>):将数字的二进制码向右移动指定的位数,高位补0。

    • 示例:

      -5 >>> 1 // 输出结果为 2147483645,因为 -5 的二进制是 111...1011(32位),无符号右移1位后变成 0111...1101,即为 2147483645
      

位运算符常用于处理特定位操作的情况,比如数据压缩、加密等领域。在JavaScript中,位运算符通常用于需要直接操作二进制数值的场景,如网络编程、图形处理等。

关注我,不迷路,共学习,同进步

关注我,不迷路,共学习,同进步

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣刷题学习(跟随视频学着刷)

使用入门 视频链接 【手把手带你刷Leetcode力扣&#xff5c;各个击破数据结构和算法&#xff5c;大厂面试必备技能【已完结】-哔哩哔哩】 https://b23.tv/vIcRT61 时空复杂度 时间&#xff1a; 空间&#xff1a;主要有O(1)和O(n)两种&#xff0c;只用计算开辟的内存&#xff…

java垃圾回收机制

java垃圾回收机制 我们知道&#xff0c;Java会自动管理和释放内存&#xff0c;它不像C/C那样要求我们手动管理内存&#xff0c;JVM提供了一套全自动的内存管理机制&#xff0c;当一个Java对象不再用到时&#xff0c;JVM会自动将其进行回收并释放内存&#xff0c;那么对象所占内…

平抑风电波动的电-氢混合储能容量优化配置

这篇论文中的EMD分解法在非线性扰动信号分解上优于小波分解法,EMD分解出来的imf各频次信号,继而利用C2F实现信号重构,根据最大波动量限值剔除出需要储能平抑的波动量,继而用超级电容实现平抑(论文中用的碱水电解槽+燃料电池我认为有很多个点可以佐证不合适,但是电制氢是热…

与绿色同行,与环保相约—ATFX世界地球日开展环境保护公益行

2024年4月22日是第55个世界地球日。今年世界地球日的主题为“全球战塑”&#xff08;Planet vs. Plastics&#xff09;&#xff0c;旨在号召公众、企业、政府和非政府组织团结起来&#xff0c;呼吁终结塑料危害&#xff0c;以确保人类和地球健康。作为公益事业的坚定倡导者与行…

PHP项目搭建与启动

1、拉取项目 2、安装phpstudy 下载地址&#xff1a; Windows版phpstudy下载 - 小皮面板(phpstudy) (xp.cn) 软件安装&#xff1a; Apache2.4.39、Nginx1.15.11、MySQL8.0.12、 composer2.5.8 添加伪静态 将下面代码写入到伪静态配置文本域框内&#xff1a; location ~* (ru…

ElasticSearch复合查寻

FunctionScore主要是在原始查询的基础上去修改一下算分的。 而BooleanQuery布尔查询&#xff0c;它不会去修改算分&#xff0c;而是把多个查询语句组合在一起形成新查询。这些被组合的查询语句&#xff0c;我们都称之为叫子查询了&#xff0c;这些子查询&#xff0c;它的组合方…

C语言----链表

大家好&#xff0c;今天我们来看看C语言中的一个重要知识&#xff0c;链表。当然大家可以先从名字中看出来。就是一些表格用链子连接。那么大家是否想到了我们以前学的数组&#xff0c;因为数组也是相连的呀。是吧。但是链表与数组还是有区别的&#xff0c;那么链表是什么有什么…

算法----BF算法KMP算法

请想象一个情景&#xff1a; 当你脑海中突然浮现出一个词&#xff0c;你该怎么去找到这个词的有关内容&#xff1f; 打开我们浏览器的搜索框&#xff0c;输入你想的这个词&#xff0c;然后点击Enter。浏览器就会自动搜索与该词匹配的内容。 这个过程实际上可以简化成以下形式…

【数据结构(邓俊辉)学习笔记】向量02——动态空间管理

文章目录 1. 概述2. 静态空间管理缺点3. 动态空间管理3.1 扩容3.1.1 如何实现扩容3.1.2 扩容算法3.1.3 容量递增策略 VS 容量倍增策略3.1.3.1 容量倍增策略分摊分析3.1.3.2 容量递增策略分摊分析3.1.3.3 结果对比 3.2缩容3.2.1 动态缩容算法实现3.2.2 动态缩容算法时间复杂度 4…

2024最新Nessus 免费安装 附详细安装教程

免责声明 请勿利用文章内的相关技术从事非法测试。由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任&#xff0c;请遵守网络安全法律。本次仅用于测试&#xff0c;请完成测试后24小时之…

C++程序在Windows平台上各种定位内存泄漏的方法

一、前言 在Linux平台上有valgrind可以非常方便的帮助我们定位内存泄漏&#xff0c;因为Linux在开发领域的使用场景大多是跑服务器&#xff0c;再加上它的开源属性&#xff0c;相对而言&#xff0c;处理问题容易形成“统一”的标准。而在Windows平台&#xff0c;服务器和客户端…

用docker方式安装openGauss数据库的事项记录

文章目录 &#xff08;一&#xff09;背景&#xff08;二&#xff09;安装&#xff08;2.1&#xff09;安装docker&#xff08;2.2&#xff09;安装openGauss &#xff08;三&#xff09;运行&#xff08;3.1&#xff09;运行openGauss镜像&#xff08;3.2&#xff09;连接open…

区块链技术与应用学习笔记(5-7节)——北大肖臻课程

​ 目录 ​BTC实现 基于交易的账本模式&#xff1a; UTXO集合&#xff1a; 交易费用&#xff1a; BTC网络 1.应用层&#xff1a; 2.网络层&#xff1a; 3传播层&#xff1a; 什么是鲁棒&#xff1f; BTC挖矿&#xff1a; 出块奖励&#xff1a; 挖矿难度调整&#…

Centos安装/更新Docker

首先要配置好Centos 配置好静态IP 替换yum源为阿里云 Docker是什么&#xff1f; Docker 是一种开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后部署到任何流行的 Linux 机器上。是一种虚拟化的技术&#xff0c;可以把…

基于socket编程实现TCP和UDP的通信流程

socket编程的常用函数&#xff0c;可以参考以下这篇博客 socket编程-----常用socket编程函数https://blog.csdn.net/ZZZCY2003/article/details/138071210 关于TCP的三次挥手、四次挥手过程和UDP的报文分析可以参考以下两篇博客 计算机网络--运输层https://blog.csdn.net/ZZ…

深度学习-N维数组和访问元素

目录 N维数组访问元素 N维数组 N维数组是机器学习和神经网络的主要数据结构 访问元素 最后一个子区域中的::是跳的意思&#xff0c;这个区域说明的是从第一个元素&#xff08;即第一行第一列那个&#xff09;对行开始跳3下循环下去直到行结束、对列开始跳2下循环下去直到列…

如何解决IntelliJ IDEA 2024打开项目时频繁闪退问题

&#x1f42f; 如何解决IntelliJ IDEA 2024打开项目时频繁闪退问题 &#x1f43e; 文章目录 &#x1f42f; 如何解决IntelliJ IDEA 2024打开项目时频繁闪退问题 &#x1f43e;摘要引言正文&#x1f4d8; 识别问题&#x1f4d9; 内存配置调整步骤1: 定位vmoptions文件步骤2: 修改…

C++初阶之入门

零、什么是C C是基于C语言而产生的&#xff0c;它既可以进行C语言的过程化程序设计&#xff0c;又可以进行以抽象数据类型为特点的基于对象的程序设计&#xff0c;还可以进行面向对象的程序设计。 C缺点之一&#xff0c;是相对许多语言复杂&#xff0c;而且难学难精。许多人说学…

为什么g++编译后的cpp文件名字为a,out

文章目录 为什么g编译后的cpp文件名字为a,out能修改默认名变成cpp文件名吗关于作者 为什么g编译后的cpp文件名字为a,out 在使用g编译C源代码时&#xff0c;默认情况下生成的可执行文件名为 a.out。这是由于在Unix和类Unix系统上&#xff0c;编译器的默认行为是将生成的可执行文…

可视化+多人协同技术原理和案例分享

前言 hi&#xff0c;大家好&#xff0c;我是徐小夕&#xff0c;之前和大家分享了很多可视化低代码的技术实践&#xff0c;最近也做了一款非常有意思的文档搭建引擎——Nocode/Doc&#xff1a; 也做了一些分享&#xff1a; Nocode/Doc&#xff0c;可视化 零代码打造下一代文件编…