【JavaScript】JavaScript 运算符 ② ( 表达式 与 返回值 | 自增 与 自减运算符 细节 | 前置自增运算符 | 后置自增运算符 )

文章目录

  • 一、JavaScript 运算符
    • 1、表达式 与 返回值
    • 2、自增 与 自减运算符 细节
    • 3、前置自增运算符
    • 4、后置自增运算符
    • 5、自增 / 自减 运算符 代码示例





一、JavaScript 运算符



1、表达式 与 返回值


" 表达式 " 是 由 数字 , 运算符 , 变量 组成的 " 式子 " ;

  • 由 算术运算符 的 表达式 又称为 算术表达式 ;

每个 " 表达式 " 都有一个最终的结果 , 这个结果就称为 表达式 的 " 返回值 " ;

  • 1 + 2 是 表达式 , 3 是 上述表达式的 返回值 ;

如果 想要 把 " 表达式 " 的 最终计算结果 赋值给 一个变量 , 需要将 接收结果的变量 写在 赋值运算符的左边 , 表达式写在 赋值运算符 的右边 ;

  • 如 : var num = 1 + 2 , 表达式 1 + 2 赋值给 num 变量 ;

2、自增 与 自减运算符 细节


在 " 算术运算符 " 中有

  • 自增运算符 ++
  • 自减运算符 --

这两个运算符 在 JavaScript 开发中 , 使用的非常频繁 ;


自增 和 自减 运算符 必须与 变量 一起使用 , 不能与 number 数字类型值 一起使用 ;

  • 定义变量 var num = 1 ;
  • num++ , num-- , ++num , --num 这中用法是正确的 ;
  • 1++ , ++1 , 1-- , --1 这种用法是错误的 ;

如果想要 var num = 1 变量 加 1 , 需要使用 num = num + 1 , 比较繁琐 , 使用 自增运算符 num++ 即可完成 变量 加 1 的效果 ;


自增 和 自减 运算符 ,

  • 可以放在 变量 的前面 ++num , 这是 前置自增运算符 ++num ;
  • 也可以放在 变量的后面 num++ , 这是 后置自增运算符 num++ ;

前置自增运算符 ++num 和 后置自增运算符 num++ 效果是不同的 ;


自增运算符基础用法 示例 :

        // 前置自增运算符 : ++num , 相当于 num = num + 1
        ++num;
        console.log(num) // 输出 : 4

3、前置自增运算符


前置 自增 / 自减 运算符 ,

  • ++num 相当于 num = num + 1 ;
  • --num 相当于 num = num - 1 ;

前置自增运算符 运算时 , 先进行 自增 / 自减 , 然后 再 返回表达式的值 ; ( 这于 后置 自增 / 自减 运算符 正好相反 , 后置运算符 先 返回表达式值 然后再 自增 / 自减 )


前置自增运算符 , 先自增 , 再返回表达式值 ;

下面的代码中 , ++num2 先进行自增 , 然后返回表达式的值 6 , 最后与 1 进行加法运算 , 得到最终值 7 ;

        // 前置自增运算符 , 先进行 自增 , 然后 再 返回表达式的值
        var num2 = 5;
        console.log(1 + ++num2)

4、后置自增运算符


后置 自增 / 自减 运算符 ,

  • num++ 相当于 num = num + 1 ;
  • num++ 相当于 num = num - 1 ;

前置自增运算符 和 后置自增运算符 , 单独使用 , 效果相同 , 如果写在表达式中 , 则其效果不同 ;

后置自增运算符 运算时 , 先返回表达式的值 , 然后 再 进行 自增 / 自减 ; ( 这于 前置 自增 / 自减 运算符 正好相反 , 前置运算符 先 自增 / 自减 然后再 返回表达式值 )


后置自增运算符 , 先返回表达式值 , 再自增 ;

下面的代码中 , num3++ 先 返回表达式的值 5 , 然后与 1 进行加法运算 , 得到最终值 6 , 最后 num3 进行自增 ;

        // 前置自增运算符 , 先 返回表达式的值  , 然后 再 进行 自增
        var num3 = 5;
        console.log(1 + num3++) // 输出 : 6

5、自增 / 自减 运算符 代码示例


代码示例 :

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript</title>
    <style></style>
    <script>
        // 定义 数字类型 变量 num
        var num = 3;

        // 前置自增运算符 : ++num , 相当于 num = num + 1
        ++num;
        console.log(num) // 输出 : 4

        // 前置自增运算符 , 先进行 自增 , 然后 再 返回表达式的值
        var num2 = 5;
        console.log(1 + ++num2) // 输出 : 7

        // 前置自增运算符 , 先 返回表达式的值  , 然后 再 进行 自增
        var num3 = 5;
        console.log(1 + num3++) // 输出 : 6
    </script>
</head>

<body>
</body>

</html>

执行结果 :

在这里插入图片描述

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

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

相关文章

功能问题:如何用Docker部署一个后端项目?

大家好&#xff0c;我是大澈&#xff01; 本文约1800字&#xff0c;整篇阅读大约需要3分钟。 关注微信公众号&#xff1a;“程序员大澈”&#xff0c;免费加入问答群&#xff0c;一起交流技术难题与未来&#xff01; 现在关注公众号&#xff0c;免费送你 ”前后端入行大礼包…

VBA_MF系列技术资料1-400

MF系列VBA技术资料1-400 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧&#xff0c;我参考大量的资料&#xff0c;并结合自己的经验总结了这份MF系列VBA技术综合资料&#xff0c;而且开放源码&#xff08;MF04除外&#xff09;&#xff0c;其中MF01-0…

*Javaweb -- MyBatis*

一:介绍: 1.MyBatis是一个优秀的 ①持久层 ②框架,用于简化JDBC的开发! ①:JAVAEE有三层的结构:表现层, 业务层, 持久层. 表现层代表的是页面的展示,业务层则指的是对于相关逻辑的处理, 而持久层, 指的则是对于数据进行持久化,保存在数据库当中. 持久层具体的来说就是负责…

maven本地仓库依赖上传到远程仓库

本地仓库上传到远程仓库 批量上传&#xff1a; 批量本地仓库依赖&#xff08;jar包&#xff09;上传脚本&#xff1a; #!/bin/bash # copy and run this script to the root of the repository directory containing files # this script attempts to exclude uploading itse…

基础算法-分治算法-学习

现象&#xff1a; 基础算法-分治算法-学习 分而治之&#xff0c;将复杂问题分成小问题&#xff0c;小问题直接求解&#xff0c;最后合并得到最终结果&#xff0c; 和递归思想有点相近&#xff0c;也是区分小问题自己解决&#xff0c;所以在分治算法很多以递归的方式实现 每个…

客户案例|100M 768 维向量数据,Zilliz Cloud 稳定支持 Shulex VOC 业务场景

日前&#xff0c;国际化 VOC SaaS 公司数里行间&#xff08;Shulex&#xff09;将上亿数据量的核心业务从开源向量数据库 Milvus 迁移至全托管的向量数据库云服务 Zilliz Cloud。 相比于 Milvus&#xff0c;Zilliz Cloud 实现了 Shulex VOC 评论分析洞察报告生成速度 30% 的提升…

遥感深度学习:CNN-LSTM模型用于NDVI的预测(Pytorch代码深度剖析)

代码上传至Github库&#xff1a;https://github.com/ChaoQiezi/CNN-LSTM-model-is-used-to-predict-NDVI 01 前言 这是一次完整的关于时空遥感影像预测相关的深度学习项目&#xff0c;后续有时间更新后续部分。 通过这次项目&#xff0c;你可以了解&#xff1a; pytroch的模…

力扣● 1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序和 动态规划

● 1143.最长公共子序列 1.dp数组含义。 dp[i][j]&#xff1a;数组1[0,i-1]范围的子数组和数组2[0,j-1]的子数组的公共子序列最长长度。注意这里不需要一定以A[i-1]/B[j-1]结尾&#xff0c;原因在下面有说明。 动态规划求子序列的问题&#xff0c;一般都是dp的下标相对于数组…

YOLOv7-Openvino和ONNXRuntime推理【CPU】

纯检测系列&#xff1a; YOLOv5-Openvino和ONNXRuntime推理【CPU】 YOLOv6-Openvino和ONNXRuntime推理【CPU】 YOLOv8-Openvino和ONNXRuntime推理【CPU】 YOLOv7-Openvino和ONNXRuntime推理【CPU】 YOLOv9-Openvino和ONNXRuntime推理【CPU】 跟踪系列&#xff1a; YOLOv5/6/7-O…

EtherCAT开源主站 IGH 介绍及主站伺服控制过程

目录 前言 IGH EtherCAT主站介绍 主要特点和功能 使用场景 SOEM 主站介绍 SOEM 的特点和功能 SOEM 的使用场景 IGH 主站 和 SOEM对比 1. 功能和复杂性 2. 资源消耗和移植性 3. 使用场景 EtherCAT 通信原理 EtherCAT主站控制伺服过程 位置规划模式 原点复归模式…

渗透测试实战思路分析

免责声明&#xff1a;文章来源真实渗透测试&#xff0c;已获得授权&#xff0c;且关键信息已经打码处理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人…

Android图片加载-Glide4,Android多进程从头讲到尾

open fun load(context: WeakReference, url: String?, image: ImageView?, transformation: BitmapTransformation) { if (image null) return // 具体图片加载逻辑 } open fun load(holder: Int, context: WeakReference, url: String, image: ImageView?, width: Int, …

Slim-Neck by GSConv

paper&#xff1a;Slim-neck by GSConv: A better design paradigm of detector architectures for autonomous vehicles official implementation&#xff1a;https://github.com/alanli1997/slim-neck-by-gsconv 背景 目标检测是计算机视觉中一个重要的下游任务。对于车载…

UE4_AI_行为树_行为树快速入门指南

声明&#xff1a;学习笔记。 在 行为树快速入门指南 中&#xff0c;你将学会如何创建一个敌方AI&#xff0c;该AI看到玩家后会做出反应并展开追逐。当玩家离开视线后&#xff0c;AI将在几秒钟后&#xff08;这可根据你的需求进行调整&#xff09;放弃追逐&#xff0c;并在场景中…

git的实际运用

1. SSH配置和Github仓库克隆 注意博主在这里演示的SSH密钥生成方式&#xff0c;下面追加的五行不成功时可手动到.ssh下的config文件中添加即可 $ tail -5 config Host github.comHostName github.comPreferredAuthentications publickeyIdentityFile ~/.ssh/test 演示 2. 关联…

[AIGC] Spring Boot中的切面编程和实例演示

切面编程&#xff08;Aspect Oriented Programming&#xff0c;AOP&#xff09;是Spring框架的关键功能之一。通过AOP&#xff0c;我们可以将代码下沉到多个模块中&#xff0c;有助于解决业务逻辑和非业务逻辑耦合的问题。本文将详细介绍Spring Boot中的切面编程&#xff0c;并…

流程控制 JAVA语言基础

任何简单或复杂的算法都可以由三种基本结构组成&#xff1a;顺序结构&#xff0c;选择结构&#xff0c;循环结构。 顺序结构 比较一般的结构&#xff0c;程序从上到下执行。 选择结构 我们从最简单的单路选择开始&#xff0c;符合条件的进入语句序列&#xff0c;不符合条件的…

基于Java公司配件库存管理系统设计与实现【附项目源码】分享

基于Java公司配件库存管理系统设计与实现&#xff1a; 源码地址&#xff1a;https://download.csdn.net/download/weixin_43894652/88842718 基于Java的公司配件库存管理系统设计与实现需求文档 一、项目背景和目标 随着公司业务的不断拓展&#xff0c;配件库存管理逐渐成为…

旭日x3派部署自己训练的模型(安全帽识别、视频流推理、yolov5-6.2)

旭日x3派部署自己训练的模型&#xff08;安全帽识别、视频流推理、yolov5-6.2&#xff09;windows&#xff0c;框架pytorch&#xff0c;python3.7 效果模型训练模型转换1、pt模型文件转onnx2、检查onnx模型3、准备校准数据4、onnx转bin 上板视频流推理1、图片推理2、视频流推理…

ArrayBlockingQueue与LinkedBlockingQueue底层原理

ArrayBlockingQueue与LinkedBlockingQueue底层原理 在线程池中&#xff0c;等待队列采用ArrayBlockingQueue或者LinkedBlockingDeque&#xff0c;那他们是怎么实现存放线程、阻塞、取出的呢&#xff1f; 一、ArrayBlockingQueue底层原理 1.1 简介 ArrayBlockingQueue是一个阻塞…