无论是++在后,还是++在前,在单独使用时,两者的值都一样,都会使变量的值自增1。不同的是如果让num++和++num再参与运算,两者的值会不同,num++是先运算,最后再自增,++num是先自增,最后再运算。

具体例子及解析如下,难度层层递进,希望能帮助到大家

1、++在后:

运算规则:先参与运算,再 +1
var num = 10;// 1.先把 num 的值赋值给 sum, 所以这时候sum是 10
// 2.然后把num再 +1,10+1 变成 11
var sum = num++console,log(num,sum) // 11  10
var num = 10// 1.参与运算 sum = 10 + 10
// 2. num自身 +1
var sum = num++ + 10console.log(sum,num) // 20  11
var num = 1//  num++ 参与运算,即 sum = 1 + num++,
//  虽然第一个num++先参与运算,但内存中num已经是2了,即运算应为 sum = 1 + 2++,
//  第二个num++,即 2++ 再次参与运算 最终 sum = 1 + 2 = 3
//  第二个num++,即2++,自 +1 ,组中num值为3
var sum = num++ + num++console.log(sum,num) // 3  3

2、++在前

运算规则:先自+1,再参与运算
var num = 10;// 1.num先自身 +1,10+1结果就是11
// 2.再把 num 的值赋值给 sum,相当于把 11 赋值给了 sum
var sum = ++numconsole,log(num,sum) // 11  11
var num = 10// 1. num先自身 +1 ,10+1=11,即num为11
// 2. 参与运算 11+10=21,即sum为21
var sum = ++num + 10console.log(sum,num) // 21  11
var num = 1// 1. 第一个++num,num先自身+1 ,此时num值为2,再经过第二个++num,即2+1=3,最终num值为3
// 2. 参与运算 sum = 2 + 3 = 5
var sum = ++num + ++numconsole.log(sum,num) // 5  3

3.综合练习

var num = 1// 第一个++num 此时num先自 +1,即sum = 2 + num++
// 第二个num++ num先参与运算 即 sum = 2 + 2++ = 2 + 2 =4
// 最后num++再自 +1,即2++,最终num值为 3var sum = ++num + num++console.log(sum,num) // 4  3
var num = 1// 第一个 ++num,先自 +1,即 sum = 2 + ++num + num++ + ++num,此时num值为 2
// 第二个 ++num, 再次自 + 1,即sum = 2 + 3 + num++ + ++num ,此时num值为 3
// 第三个 num++,num先参与运算,即 sum = 2 + 3 + 3 + ++num,此时虽说num先参与运算,值是3不变,但在内存中,经厉 num++ 后,内存中的num值为4
// 第四个++num,但内存中的num值为4,所以自 +1,最终num的值为 5.  sum = 2 + 3 + 3 + 5 = 13
var sum = ++num + ++num + num++ + ++numconsole.log(sum,num) // 13  5

JS一元运算符(前++,后++)详解相关推荐

  1. nodejs 本地php服务器,node.js创建本地服务器详解

    本文主要和大家分享node.js创建本地服务器详解,简易上手node.js后,我们就可以在自己电脑上创建本地服务器了.希望能帮助到大家. 一.先上代码.//请求Node.js自带的http模块. va ...

  2. js打印三角形超详解

    js打印三角形超详解 j控制星星的总行数,i控制每行星星的打印个数 打印图形如下: (1) (2) //str=""用来存储星星// 理解步骤1:在一行输出6个星星如何操作,在循环 ...

  3. Three.js - 摄像机的使用详解(透视投影摄像机、正交投影摄像机)

    一.两种摄像机的区别与比较 Three.js 库提供了两种不同的摄像机:透视投影摄像机和正交投影摄像机. 透视投影摄像机:这种摄像机的效果更贴近真实世界.也就是物体离摄像机越远,它们就会被渲染得越小. ...

  4. computed用发_Vue.js中computed使用详解

    这次给大家带来Vue.js中computed使用详解,Vue.js中computed使用的注意事项有哪些,下面就是实战案例,一起来看一下. JS属性: JavaScript有一个特性是Object.d ...

  5. JS事件的三个阶段详解

    JS事件的三个阶段详解 一.JS事件的三个阶段 二.冒泡阶段触发事件 三.捕获阶段触发事件 四.阻止冒泡行为 五.阻止事件冒泡和默认行为 一.JS事件的三个阶段 事件处理机制的三个阶段:1.捕获 2. ...

  6. js调试控制台使用详解图解

    一 实例图解 四种不同的console输出函数,输出信息前显示不同的图标: $查看某个元素: console.dir()可以显示一个对象所有的属性和方法: 分组显示信息: 显示digitalData对 ...

  7. JS中函数式编程详解版(FunctionalProgramming,FP)

    函数式编程详解 函数式编程的认识 函数式编程前置知识 函数是一等公民(First-class Function) 高阶函数 闭包 函数式编程基础 纯函数 lodash 模块 柯里化 函数组合 函子 函 ...

  8. Js中apply方法详解说明

    Js apply 方法 详解 我在一开始看到JavaScript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了, ...

  9. JS中this关键字详解

    本文主要解释在JS里面this关键字的指向问题(在浏览器环境下). 阅读此文章,还需要心平气和的阅读完,相信一定会有所收获,我也会不定期的发布,分享一些文章,共同学习 首先,必须搞清楚在JS里面,函数 ...

  10. html js require函数,Require.js的基本用法详解

    一:什么是require.js ①:require.js是一个js脚本加载器,它遵循AMD(Asynchronous Module Definition)规范,实现js脚本的异步加载,不阻塞页面的渲染 ...

最新文章

  1. qlabel可以选中吗_QLabel-标签控件的应用
  2. 后量子密码芯片研究取得重大突破,论文入选ISSCC 2022和CHES 2022
  3. springboot日志自定义路径无效及出现org.springframework.boot.context.properties.bind.BindException错误
  4. LeetCode 1966. Binary Searchable Numbers in an Unsorted Array
  5. [Editor][002][Emacs] 从零到高级的进阶 - 实践开发 - 帮助菜单主页
  6. 泡泡玛特回应与肯德基联名引发炒作:暂停食品行业的定制盲盒业务
  7. 分布式文件系统_新一代分布式文件系统XGFS揭秘——元数据服务
  8. office2010的安装和卸载
  9. jsp连接MYSQL数据库教程(文字+图)
  10. 英文邮件中常见的英语缩写
  11. dw怎么在框架中加入网页_DW中制作框架网页.ppt
  12. 家庭局域网文件共享,轻松互联手机与电脑
  13. SOCKET实现广播(BoardCast)的发送和接收 (转)
  14. 区分联通、移动、电信 号码的策略
  15. django管理后台列表页,TextField字段展示换行等格式(format_html)
  16. 4天上线“战疫”小程序,腾讯敏捷在数字广东的落地实践
  17. 最没灵魂的爬虫——Selenium 游戏信息的爬取与分析
  18. 【论文阅读30】-《Autocuts: Simultaneous Distortion and Cut Optimization for UV Mapping》
  19. 计算机技术与软件专业技术资格(水平)考试—— 软考中级 网络工程师笔记six
  20. CPU与CPU散热器 杂项

热门文章

  1. 简易英文问答系统(glove.6B词向量)
  2. 2010数据库大事记
  3. Ubuntu kylin 14.04下的spark1.0.1安装
  4. 网页布局中的 px,em,rem,pt
  5. 懂AI的医生一定会替代不懂AI的医生
  6. “杏”运有你!共赏这乡美景
  7. 基于工业5G路由器的智慧公厕无线联网解决方案
  8. 快手怎么引流做CPA?如何在快手直播上截流操作CPA项目
  9. 外卖CPS用抖音高权重号评论引流,日引万粉
  10. React Routing