i++ 和 ++i 之间的区别详细解释(后缀与前缀)

简介: i++ 和 ++i 之间的区别详细解释(后缀与前缀)

JavaScript(和许多其他语言)支持后缀和前缀增量运算符(++)。您可能以前曾经看过并使用过它。我看到不少博客对于 i++ 和 ++i 的解释都模糊不清,新手看了肯定一脸懵逼,甚至有些人的解释是完全错的,今天我来给大家详细地解释一下。


通常这样使用:


i++;


在这种情况下,它几乎等同于:


i = i + 1;


但是,您怎么看?两者之间有区别吗


let i = 3;

const j = i++;



let i = 3;

const j = ++i;


嗯,是。第一个示例使用后缀增量运算符(i++)。第二个示例使用前缀增量运算符(++i)。起初,似乎没有什么区别。但是,重要的是要了解这里发生的事情:


后缀增量运算符使该值递增,并在递增之前返回该值。


前缀增量运算符使值递增,并在递增之后返回值。


让我们再来看两个例子:


// 后缀增量(postfix increment)
let i = 3;
const j = i++;
console.log({ i, j }); // { i: 4, j: 3 }
// 前缀增量(prefix increment)
let i = 3;
const j = ++i;
console.log({ i, j }); // { i: 4, j: 4 }


发现不同了吗?是j的值不同。因此,重要的是要知道postfix(后缀)和prefix(前缀)之间的微小差异。


顺便说一下,这同样也适用于后缀减量和前缀减量运算符(--)。唯一的区别是,--没有增加值,而是减少了值。


这就是所有我要说的。我希望我能把区别说清楚了。再见!


最后,不要忘了❤或📑支持一下哦


目录
相关文章
路径中“./”、“../”、“/”代表的含义
路径中“./”、“../”、“/”代表的含义
|
7月前
如何去掉字符串中文括号及其内部的内容三种方式
如何去掉字符串中文括号及其内部的内容三种方式
231 0
|
7月前
|
数据采集 Java API
Java 正则表达式【非贪婪匹配、格式验证、反向引用、API】
Java 正则表达式【非贪婪匹配、格式验证、反向引用、API】
|
Oracle 关系型数据库
oracle按code编码长度查询代码展现层级关系(给字段前加空格)
学习oracle按code编码长度查询代码展现层级关系(给字段前加空格)
152 0
oracle按code编码长度查询代码展现层级关系(给字段前加空格)
项目实战:Qt文件改名工具 v1.2.0(支持递归检索,搜索:模糊匹配,前缀匹配,后缀匹配;重命名:模糊替换,前缀追加,后缀追加
项目实战:Qt文件改名工具 v1.2.0(支持递归检索,搜索:模糊匹配,前缀匹配,后缀匹配;重命名:模糊替换,前缀追加,后缀追加
项目实战:Qt文件改名工具 v1.2.0(支持递归检索,搜索:模糊匹配,前缀匹配,后缀匹配;重命名:模糊替换,前缀追加,后缀追加
|
C#
C#资源文件与与资源名称字符串之间的互相转化
原文:C#资源文件与与资源名称字符串之间的互相转化 1.使用ResourceManager string st = Properties.Resources.ResourceManager.GetString(tableName);value = Properties.
1098 0
正则匹配指定字符之间的内容,并替换(多个匹配替换)
var str="是吗@Test1:我觉得你说的很对@Test:学无止境"; var r=str.match(/@.*?:/ig); for (var index = 0; index < r.
2419 0
|
Java
Java中++,--,前缀后缀表达值的不同,与^的值计算
package 习题1; /** * ++ -- 与 ^ 的一些计算 * @author SeeClanUkyo * */ public class Test4 { public static void main(String[] args) { int i =...
1142 0