JavaScript运算符:递增和递减(++i,--i 和 i++,i-- 的区别)
递增和递减操作符直接借鉴自C,而且各有两个版本:前置型 (递增 ++i ,递减 --i )和 后置型 (递增 i++ ,递减 i-- )。书本上对两者的定义是:前置型应该位于要操作的变量之前,而后置型则应该位于要操作的变量之后。what?怎么那么难理解,换一种通俗易懂的语言去描述应该是咋样的......,结合提供代码,一顿白眼.....
前置型 (递增 ++i ,递减 --i ): 不就是先自身计算,再赋值给变量(先计算自己身上增加,减少了多少钱,再把它存到自己的银行卡里或者还给债主);
后置型 (递增 i++ ,递减 i-- ):不就是先将自身的值赋值给变量,然后再自身计算(先把自己原本身上的钱存到自己的银行卡里或者还给债主,然后在计算在原来基础上自己增加,减少了多少钱);
懂了没?假设还不懂,那现在开始给你看看两种方式下,你的钱是怎么流通的哈:
一、前置型(递增++i,递减--i)
假设你有100块(变量i=100) ,那么前置递增为 ++i 。
var i = 100;
alert(i); => 100
++i; => 101 先计算自己身上增加了多少钱
alert(i); => 101 再把它存到自己的银行卡里或者还给债主
也相当于如下的操作效果:
var i = 100;
i=i+1; => i=100+1=101;
执行前置递增和递减操作时,变量的值都是在语句被求值以前改变的。(在计算机科学领域中,这种情况通常被称作副效应)
,看下面的例子:
var age = 29;
var anotherAge = --age + 2;
console.log(age) // 28 (age = age - 1)
console.log(anotherAge); // 30 (anotherAge = age - 1 + 2)
这个例子中变量 anotherAge的初始值等于变量 age 的值前置递减( age = age - 1 )之后加上 2 。就是age自身先执行减法操作(age=age-1), age 的值变成了28,然后再加上 2,值就是30。
另外在JavaScript运算符中,前置递增( ++i )和递减( --i )与执行语句的优先级相同,因此整个语句会 从左至右被求值 。再来看一个示例:
var num1=2;
var num2=20;
var num3=++num1 + num2;
var num4=num1+num2;
alert(num1); // 3
alert(num3); // 23
alert(num4); // 23
在这里,num3等于23,是因为num1先自身执行了加法操作才与num2相加。而变量num4也等于23,是因为相应的加法操作也使用了num1自身执行了加法操作后的值。
二、后置型(递增i++,递减i--)
假设你有100块(变量i=100) ,那么前置递增为 ++i 。
var i = 100;
alert(i); => 100
i++; => 100 先把自己原本身上的钱存到自己的银行卡里或者还给债主
alert(i); => 101 然后在计算在原来基础上自己增加,减少后一共还有多少钱
把递增操作符放在变量后面并不会改变语句的结果,因为递增是这条语句的唯一操作。但是当语句中还包含其他操作时,区别就会不一样了。看下面的例子:
var num1=2;
var num2=20;
var num3=num1++ + num2;
var num4=num1+num2;
alert(num1); => 3
alert(num3); => 22 // var i; i=num1=2; num1=num+1=3 ; num3=i + num2;
alert(num4); => 23 // num1+num2;
前置递增(递减)&&后置递增(递减)
1.前置递增(++): 在变量的前面,先自身执行加法操作后在赋值(++i);
2.后置递增(++): 在变量的后面,先赋值后在执行加法操作(i++);
3.前置递减(--): 在变量的前面,先自身执行减法操作后在赋值(--i);
4.后置递减(--): 在变量的前面,先赋值后在执行减法操作(i--);
总结,希望这篇文章对你理解递增和递减(++i,--i 和 i++,i-- 的区别)有帮助,分享技术,分享快乐!
JavaScript运算符:递增和递减(++i,--i 和 i++,i-- 的区别)的更多相关文章
- PHP:第一章——PHP中的算术运算符/递增、递减运算符/赋值运算符
算术运算符 //$a=10; $b=5; //取反: //echo -$a;//输出:-10: //加法: //echo $a+$b;//输出:15 //减法: //echo $a-$b;//输出:5 ...
- JavaScript运算符:递增递减运算符前置和后置的区别
从两段代码说起 var num1 = 2; var num2 = 20; var num3 = --num1 + num2; var num4 = num1 + num2; console.log(n ...
- javascript运算符语法概述
× 目录 [1]个数 [2]优先级 [3]结合性[4]类型[5]规则表 前面的话 javascript中的运算符大多由标点符号表示,少数由关键字表示,它们的语法言简意赅,它们的数量却着实不少.运算符始 ...
- javascript运算符与表达式
表达式 表达式是关键字.运算符.变量以及文字的组合,用来生成字符串.数字或对象.一个表达式可以完成计算.处理字符.调用函数.或者验证数据等操作. 表达式的值是表达式运算的结果,常量表达式的值就是常量本 ...
- javascript运算符——算术运算符
× 目录 [1]一元加 [2]一元减 [3]递增[4]递减[5]加法[6]减法[7]乘法[8]除法[9]求余 前面的话 javascript中的算术操作主要通过算术运算符来实现,本文将介绍算术运算符的 ...
- Java的自动递增和递减
和C 类似,Java 提供了丰富的快捷运算方式.这些快捷运算可使代码更清爽,更易录入,也更易读者辨读.两种很不错的快捷运算方式是递增和递减运算符(常称作"自动递增"和"自 ...
- JavaScript运算符
JavaScript运算符 1.算数运算符 设定a = 5. 运算符 描述 例子 结果 + 加 b=a+2 b=7 - 减 b=a-2 b=3 * 乘 b=a*2 b=10 / 除 b=a/2 b=2 ...
- js验证连续两位数字递增或递减和连续三位数字相同
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...
- JavaScript 运算符
JavaScript 运算符 JavaScript 运算符用于赋值,比较值,执行算术运算等. JavaScript 算术运算符 算术运算符用于执行两个变量或值的运算. 赋值 y = 5, 以下表格将向 ...
随机推荐
- 邮件服务器Postfix的管理 重启php-fpm
Postfix邮件系统安装与配置:Postfix,Cyrus-IMAP,Cyrus-sasl,Dovecot和SPFhttp://www.freehao123.com/postfix-cyrus/Ce ...
- git-【五】远程仓库
一.准备工作 在了解之前,先注册github[https://github.com/]账号,由于你的本地Git仓库和github仓库之间的传输是通过SSH加密的,所以需要一点设置: 第一步 创建SSH ...
- EasyUI Pagination 分页
通过 $.fn.pagination.defaults 重写默认的 defaults. 分页(pagination)允许用户通过翻页导航数据.它支持页面导航和页面长度选择的可配置选项.用户可以在分页的 ...
- word安装mathtype
1:window版本的mathtype:https://pan.baidu.com/s/1Yn8kPG9Y9nBPGaotFJaL2Q ,密码spwm 2:点击exe安装 (安装到c盘,将不会出 ...
- spring requestmapping 拦截多个请求
@RequestMapping(value = {"/picture_content/{id}","/attachment_content/{id}",&quo ...
- 解读webpack的bundle.js
可能就是好奇心略重了,读了一下webpack打包后的bundle.js的代码,复杂的模块可能读不懂,但简单的hello world模块我还是能看懂的.没什么目的,就是想通过几个简单的模块,一条简单的w ...
- 时间格式—My97DatePicker控件使用
一.My97DatePicker控件使用(2步): 1:JSP页面:( class="Wdate" 显示控件图标) 引入控件包中的脚本: <script type=&qu ...
- python uwsgi报错epoll_ctl(): Bad file descriptor
今天安装了uwsgi+supervisord+nginx,一直访问不了 直接启动uwsgi使用nginx访问,查看有大量报错:epoll_ctl(): Bad file descriptor [cor ...
- FFmpeg 入门(5):视频同步
本文转自:FFmpeg 入门(5):视频同步 | www.samirchen.com 视频如何同步 在之前的教程中,我们已经可以开始播放视频了,也已经可以开始播放音频了,但是视频和音频的播放还未同步, ...
- PHP Fatal error: Uncaught Error: Call to undefined function pcntl_fork().. 开启php pcntl扩展实现多进程
在使用函数pcntl_fork()时报错 Fatal error: Uncaught Error: Call to undefined function pcntl_fork()....,原因是没有 ...