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, 以下表格将向 ...
随机推荐
- MVC4中使用Html.DropDownList实现级联
本文记录了一个在MVC4中使用PartialView实现级联效果的小例子. 准备工作 首先准备一下要级联的数据,新建两个类:Province和City public class Province { ...
- proc_create函数内幕初探
一直以为PROC文件系统很是晦涩难懂,平时仅仅是使用它,不愿意去触碰内核中的具体实现.今天突发奇想,想看看里面究竟是怎么实现的,结果……真是大跌眼镜,没想到里面并不复杂 关于PROC文件系统的功能以及 ...
- day10(java web之request&respone&访问路径&编码问题)
day10 请求响应流程图 response response概述 response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletR ...
- 【Python】sasa版:文件中csv读取在写入csv读取的数据和执行是否成功。
sasa写的文件(包含解析文字) # coding=utf- from selenium import webdriver from time import sleep import keyword ...
- django之中间件、缓存、信号、admin内置后台
目录: 中间件 缓存 信号 admin后台 一.中间件 1.什么是中间件? 中间件是一个.一个的管道,如果相对任何所有的通过Django的请求进行管理都需要自定义中间件 中间件可以对进来的请求和出去的 ...
- onvif协议client与server对接
happytimesoft有完整的c语言开发的onvif client和server,一共1000$,真便宜,haha. http://www.happytimesoft.com/products/m ...
- 数据挖掘-关联分析 Apriori算法和FP-growth 算法
•1.关联分析概念 关联分析是从大量数据中发现项集之间有趣的关联和相关联系. •定义:1.事务:每一条交易称为一个事务,如上图包含5个事务.2.项:交易的每一个物品称为一个项,例如豆奶,啤酒等. ...
- C#之父
来自为知笔记(Wiz)
- VS2010/MFC编程入门之三十(常用控件:树形控件Tree Control 上)
前面两节为大家讲了列表视图控件List Control,这一节开始介绍一种特殊的列表--树形控件Tree Control. 树形控件简介 树形控件在Windows系统中是很常见的,例如资源管理器左侧的 ...
- android的hook方面知识点
android hook分为另种: native层hook---理解ELF文件 java层---虚拟机特性和Java上的反射的作用 注入代码: 存放在哪? 用mmap函数分配临时内存来完成代码存放,对 ...