【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>// 定义 数字类型 变量 numvar 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>

执行结果 :

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【四 (2)数据可视化之 Matplotlib 常用图表及代码实现 】

目录 文章导航一、介绍二、安装Matplotlib三、导入Matplotlib四、设置可以中文显示四、常用图形1、散点图&#xff08;Scatter Plot&#xff09;2.1、线性图&#xff08;Line Plot&#xff09;2.2、堆叠折线图2.3、多图例折线图3.1、柱状图/条形图&#xff08;Bar Chart&#x…

【C#】.net core 6.0 使用第三方日志插件Log4net,配置文件详细说明

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是《C#》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌握。…

PostMan测试文件上传

后端代码 package com.example.backend.controller;import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.StrUtil; import com.example.backend.common.Result; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import org…

stm32-定时器输出比较PWM

目录 一、输出比较简介 二、PWM简介 三、输出比较模式实现 1.输出比较框图(以通用定时器为例) 2.PWM基本结构 四、固件库实现 1.程序1&#xff1a;PWM呼吸灯 2.程序2&#xff1a;PWM驱动直流电机 3.程序3&#xff1a;控制舵机 一、输出比较简介 死区生成和互补输出一般…

【计算机网络_传输层】UDP和TCP协议

文章目录 1. 重新理解端口号端口号划分netstat指令pidof 2. UDP协议2.1 UDP协议端格式2.2 UDP的特点2.3 UDP的注意事项2.4 基于UDP的应用层协议 3. TCP协议&#xff08;传输控制协议&#xff09;3.1 TCP协议的格式和报头字段3.2 如何解包和分用3.3 理解TCP协议报头3.4 TCP协议的…

一款比 K8S 更好用的编排工具——Nomod

今天给笔友们推荐一款最近发现的服务编排工具Nomad。综合感觉就是功能很强大&#xff0c;姿势很优雅&#xff0c;相比 K8S 更加轻量级&#xff0c;相比 Docker-Compose 能轻松支持分布式。 Nomad 能做什么&#xff1f; Nomad 采用统一的工作流程&#xff0c;既可以轻松部署和管…

基于正点原子潘多拉STM32L496开发板的简易示波器

一、前言 由于需要对ADC采样性能的评估&#xff0c;重点在于对原波形的拟合性能。 考虑到数据的直观性&#xff0c;本来计划采集后使用串口导出&#xff0c;并用图形做数据拟合&#xff0c;但是这样做的效率低下&#xff0c;不符合实时观察的需要&#xff0c;于是将开发板的屏幕…

多模态学习 - 视觉语言预训练综述-2023-下游任务、数据集、基础知识、预训练任务、模型

参考&#xff1a; https://zhuanlan.zhihu.com/p/628840228 https://zhuanlan.zhihu.com/p/628994098 https://zhuanlan.zhihu.com/p/629996372 https://zhuanlan.zhihu.com/p/582424974 多模态学习 - 视觉语言预训练综述-2023-下游任务、数据集、基础知识、模型 1. 多模态介绍…

计算机网络 谢希仁(001-2)

计算机网络-方老师 总时长 24:45:00 共50个视频&#xff0c;6个模块 此文章包含1.5到1.7的内容 1.5计算机网络类别 连通 共享 分类方法 广域网是边缘部分和核心部分的核心部分 以前是拨号连接 现在是光纤 总线型 星型 环形网 1.6计算机网络的性能 带上单位之后就不是…

Java八股文(Element Plus)

Java八股文のElement Plus Element Plus Element Plus 什么是Element UI 和 Element Plus&#xff1f; Element UI 和 Element Plus 是基于 Vue.js 的一套非常受欢迎的开源 UI 组件库&#xff0c;用于快速构建具有现代化设计和丰富交互效果的前端界面。 Element UI 和 Element…

Livox激光雷达 mid360 跑 fastlio2 - 流程记录

mid360 跑 fastlio2 一、配置 mid360 环境1.1、主机配置静态IP为192.168.1.501.2、Livox-SDK21.3、Livox_ros_driver2二、Fast-lio22.1、下载源码2.2、修改代码2.3、编译、运行 一、配置 mid360 环境 1.1、主机配置静态IP为192.168.1.50 1.2、Livox-SDK2 安装工具 sudo apt…

VSCode ARM CortexM 开发

VSCode ARM CortexM 开发: http://coffeelatte.vip.cpolar.top/post/software/applications/vscode/vscode_arm_cortexm_开发/ 文章目录 VSCode ARM CortexM 开发: <http://coffeelatte.vip.cpolar.top/post/software/applications/vscode/vscode_arm_cortexm_%E5%BC%80%E5%…