JS一元运算符(前++,后++)详解
无论是++在后,还是++在前,在单独使用时,两者的值都一样,都会使变量的值自增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一元运算符(前++,后++)详解相关推荐
- nodejs 本地php服务器,node.js创建本地服务器详解
本文主要和大家分享node.js创建本地服务器详解,简易上手node.js后,我们就可以在自己电脑上创建本地服务器了.希望能帮助到大家. 一.先上代码.//请求Node.js自带的http模块. va ...
- js打印三角形超详解
js打印三角形超详解 j控制星星的总行数,i控制每行星星的打印个数 打印图形如下: (1) (2) //str=""用来存储星星// 理解步骤1:在一行输出6个星星如何操作,在循环 ...
- Three.js - 摄像机的使用详解(透视投影摄像机、正交投影摄像机)
一.两种摄像机的区别与比较 Three.js 库提供了两种不同的摄像机:透视投影摄像机和正交投影摄像机. 透视投影摄像机:这种摄像机的效果更贴近真实世界.也就是物体离摄像机越远,它们就会被渲染得越小. ...
- computed用发_Vue.js中computed使用详解
这次给大家带来Vue.js中computed使用详解,Vue.js中computed使用的注意事项有哪些,下面就是实战案例,一起来看一下. JS属性: JavaScript有一个特性是Object.d ...
- JS事件的三个阶段详解
JS事件的三个阶段详解 一.JS事件的三个阶段 二.冒泡阶段触发事件 三.捕获阶段触发事件 四.阻止冒泡行为 五.阻止事件冒泡和默认行为 一.JS事件的三个阶段 事件处理机制的三个阶段:1.捕获 2. ...
- js调试控制台使用详解图解
一 实例图解 四种不同的console输出函数,输出信息前显示不同的图标: $查看某个元素: console.dir()可以显示一个对象所有的属性和方法: 分组显示信息: 显示digitalData对 ...
- JS中函数式编程详解版(FunctionalProgramming,FP)
函数式编程详解 函数式编程的认识 函数式编程前置知识 函数是一等公民(First-class Function) 高阶函数 闭包 函数式编程基础 纯函数 lodash 模块 柯里化 函数组合 函子 函 ...
- Js中apply方法详解说明
Js apply 方法 详解 我在一开始看到JavaScript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了, ...
- JS中this关键字详解
本文主要解释在JS里面this关键字的指向问题(在浏览器环境下). 阅读此文章,还需要心平气和的阅读完,相信一定会有所收获,我也会不定期的发布,分享一些文章,共同学习 首先,必须搞清楚在JS里面,函数 ...
- html js require函数,Require.js的基本用法详解
一:什么是require.js ①:require.js是一个js脚本加载器,它遵循AMD(Asynchronous Module Definition)规范,实现js脚本的异步加载,不阻塞页面的渲染 ...
最新文章
- qlabel可以选中吗_QLabel-标签控件的应用
- 后量子密码芯片研究取得重大突破,论文入选ISSCC 2022和CHES 2022
- springboot日志自定义路径无效及出现org.springframework.boot.context.properties.bind.BindException错误
- LeetCode 1966. Binary Searchable Numbers in an Unsorted Array
- [Editor][002][Emacs] 从零到高级的进阶 - 实践开发 - 帮助菜单主页
- 泡泡玛特回应与肯德基联名引发炒作:暂停食品行业的定制盲盒业务
- 分布式文件系统_新一代分布式文件系统XGFS揭秘——元数据服务
- office2010的安装和卸载
- jsp连接MYSQL数据库教程(文字+图)
- 英文邮件中常见的英语缩写
- dw怎么在框架中加入网页_DW中制作框架网页.ppt
- 家庭局域网文件共享,轻松互联手机与电脑
- SOCKET实现广播(BoardCast)的发送和接收 (转)
- 区分联通、移动、电信 号码的策略
- django管理后台列表页,TextField字段展示换行等格式(format_html)
- 4天上线“战疫”小程序,腾讯敏捷在数字广东的落地实践
- 最没灵魂的爬虫——Selenium 游戏信息的爬取与分析
- 【论文阅读30】-《Autocuts: Simultaneous Distortion and Cut Optimization for UV Mapping》
- 计算机技术与软件专业技术资格(水平)考试—— 软考中级 网络工程师笔记six
- CPU与CPU散热器 杂项