详解a++和++a的区别
以前我也是老搞不懂a++和++a的区别, 后来看了很多资料, 终于总结出来一条规律, 小白专用!
看完这个例子就懂了:
例1:$a = 8, 求 ++a + a++ - --a + a-- + ++a得多少?
旧值: 8 9 10 9 8
++a + a++ - --a + a-- + ++a
新值: 9 10 9 8 9
返回值: 9 9 9 8 9
结果就等于: 9+9+9+8+9 = 26,
解释: 不管a++还是++a, a都要自身加以, 但是如果是a++,则返回值为旧值,如果是++a, 则返回值为新值.
所以从表达式的结果为26.
例2:
var a = 3; var goos = function(){ return a++; } console.log(goos());
结果肯定为3;
例3:
var a = 3; var goos = function(){ return ++a; } console.log(goos());
结果肯定为4;
再次解释: 解释: 不管a++还是++a, a都要自身加以, 但是如果是a++,则返回值为旧值,如果是++a, 则返回值为新值.
总结
以上所述是小编给大家介绍的a++和++a的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
C语言菜鸟基础教程之a++与++a
(一)a++ 在C语言或其它语言中,++符号表示"自加",就是变量在原来的基础上加1. 例1: a = 0; a++; 则此时a的值为1. 同样的道理,--表示"自减". 例2: a = 100; a--; 则此时a的值为99. 注意,程序语言里没有"自乘"和"自除"的概念. 验证程序: #include <stdio.h> int main() { int a = 0; // 给a赋值 a++; printf(&
-
详解path和classpath的区别
详解path和classpath的区别 path的作用 path是系统用来指定可执行文件的完整路径,即使不在path中设置JDK的路径也可执行JAVA文件,但必须把完整的路径写出来,如C:\Program Files\Java\jdk1.6.0_10\bin\javac TheClass.java.path是用来搜索所执行的可执行文件路径的,如果执行的可执行文件不在当前目录下,那就会依次搜索path中设置的路径:而java的各种操作命令是在其安装路径中的bin目录下,所以在path中设置了JDK
-
详解Mybatis中的 ${} 和 #{}区别与用法
Mybatis 的Mapper.xml语句中parameterType向SQL语句传参有两种方式:#{}和${} 我们经常使用的是#{},一般解说是因为这种方式可以防止SQL注入,简单的说#{}这种方式SQL语句是经过预编译的,它是把#{}中间的参数转义成字符串,举个例子: select * from student where student_name = #{name} 预编译后,会动态解析成一个参数标记符?: select * from student where student_name
-
详解Shell $*和$@之间的区别
$* 和 $@ 都表示传递给函数或脚本的所有参数,我们已在<Shell特殊变量>一节中进行了演示,本节重点说一下它们之间的区别. 当 $* 和 $@ 不被双引号" "包围时,它们之间没有任何区别,都是将接收到的每个参数看做一份数据,彼此之间以空格来分隔. 但是当它们被双引号" "包含时,就会有区别了: "∗ " 会 将 所 有 的 参 数 从 整 体 上 看 做 一 份 数 据 , 而 不 是 把 每 个 参 数 都 看 做 一 份
-
分析详解python多线程与多进程区别
目录 1 基础知识 1.1 线程 1.2 进程 1.3 两者的区别 2 Python 多进程 2.1 创建多进程 方法1:直接使用Process 方法2:继承Process来自定义进程类,重写run方法 2.2 多进程通信 Queue Pipe 2.3 进程池 3 Python 多线程 3.1 GIL 3.2 创建多线程 方法1:直接使用threading.Thread() 方法2:继承threading.Thread来自定义线程类,重写run方法 3.3 线程合并 3.4 线程同步与互斥锁 3
-
详解java中&和&&的区别
&&(短路与).&.||(短路或).|,这几种运算符在Java程序开发中经常用到,下面小编主要给大家介绍下&和&&的区别. 其中&&与&都表示逻辑与,当运算符两边的表达式的结果都为true时,其运算结构才是true. 但是&&有短路的作用,如果第一个表达式为false,则不用判断第二个表达式. 复制代码 代码如下: if((str!=null)&&(!str.equals("")))
-
详解js中==与===的区别
为了减少概念混淆,应该把 =称作(得到或者赋值),==称作(相等),===称作(严格相等) 相同点: 它们两个运算符都允许任意类型的的操作数,如果操作数相等,返回true,否则返回false 不同: ==:运算符称作相等,用来检测两个操作数是否相等,这里的相等定义的非常宽松,可以允许进行类型转换 ===:用来检测两个操作数是否严格相等 1.对于string,number等基础类型,==和===是有区别的 不同类型间比较,==之比较"转化成同一类型后的值"看"值"是否
-
详解a++和++a的区别
以前我也是老搞不懂a++和++a的区别, 后来看了很多资料, 终于总结出来一条规律, 小白专用! 看完这个例子就懂了: 例1:$a = 8, 求 ++a + a++ - --a + a-- + ++a得多少? 旧值: 8 9 10 9 8 ++a + a++ - --a + a-- + ++a 新值: 9 10
-
详解iframe与frame的区别
开门见山了,大家需要注意的地方:HTML5不再支持使用frame,iframe只有src 属性 一.使用iframe的优缺点 优点: 1.程序调入静态页面比较方便; 2.页面和程序分离; 缺点: 1.iframe有不好之处:样式/脚本需要额外链入,会增加请求.另外用js防盗链只防得了小偷,防不了大盗. 2.iframe好在能够把原先的网页全部原封不动显示下来,但是如果用在首页,是搜索引擎最讨厌的.那么你的网站即使做的在好,也排不到好的名次!如果是动态网页,用include还好点!但是必须要去除他
-
详解路由器和交换机的区别
计算机网络往往由许多种不同类型的网络互连连接而成.如果几个计算机网络只是在物理上连接在一起,它们之间并不能进行通信,那么这种"互连"并没有什么实际意义.因此通常在谈到"互连"时,就已经暗示这些相互连接的计算机是可以进行通信的,也就是说,从功能上和逻辑上看,这些计算机网络已经组成了一个大型的计算机网络,或称为互联网络,也可简称为互联网.互连网. 将网络互相连接起来要使用一些中间设备(或中间系统),ISO的术语称之为中继(relay)系统.根据中继系统所在的层次,可以
-
java面试题——详解HashMap和Hashtable 的区别
一.HashMap 和Hashtable 的区别 我们先看2个类的定义 public class Hashtable extends Dictionary implements Map, Cloneable, java.io.Serializable public class HashMap extends AbstractMap implements Map, Cloneable, Serializable 可见Hashtable 继承自 Dictiionary 而 HashMap继承自Abs
随机推荐
- Delphi创建开机启动项的方法示例
- php从memcache读取数据再批量写入mysql的方法
- django中使用jquery ajax post数据出现403错误的解决办法(两种方法)
- Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
- 妙用VBScript自制IE工具栏按钮的代码
- System.Data.SqlClient.SqlException: 无法打开登录所请求的数据库 登录失败。
- 解析img图片没找到onerror事件 Stack overflow at line: 0
- 关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
- 再谈Python中的字符串与字符编码(推荐)
- php下实现在指定目录搜索指定类型文件的函数
- Python基于scapy实现修改IP发送请求的方法示例
- 含有CKEditor的表单如何提交
- 删除DOS结尾符的方法
- SqlServer编写数据库表的操作方式(建库、建表、修改语句)
- 有趣的JavaScript数组长度问题代码说明
- android自定义view之实现日历界面实例
- 关于C++一些特性的探究
- node.js中axios使用心得总结
- Java编程文件遍历之指定遍历的层数详细代码
- 用Django实现一个可运行的区块链应用