首页 > 编程知识 正文

JavaScriptnum 与 num 的陷阱,深渊的陷阱

时间:2023-05-03 06:53:27 阅读:281747 作者:2651

一、首先看四个例子


var num1 = 9;document.writeln(num1); // 9--num1document.writeln(num1); //8


var num1 = 9;document.writeln(num1); // 9num1--document.writeln(num1); //8

前两个例子毫无疑问,就是简单的把num1 进行了减1;


var num1 = 9;var num2 = --num1 + 2;document.writeln(num1); // 8document.writeln(num2); // 10

这是会得到 num1被减了1,num2也-->8+2=10;

 ④

var num1 = 9;var num2 = num1-- + 2;document.writeln(num1); // 8document.writeln(num2); // 11

 这是会得到 num1被减了1,num2却是-->9+2=11;


二、我们接着来看下面两个例子

var num1 = 2;var num2 = 10;var num3 = --num1 + num2;var num4 = num1 + num2;document.writeln(num3); // 11document.writeln(num4); // 11

得到 num1都被减了1


var num1 = 2;var num2 = 10;var num3 = num1-- + num2;var num4 = num1 + num2;document.writeln(num3); // 12document.writeln(num4); // 11

 得到 num3中的num1没有被减1,而num4中的num1被减了1


总结下:执行前置递增和递减操作时,变量的值都是在语句被求值以前改变的。(在计算机科学领域,这种情况通常被称为副效应)。执行后置递增和递减操作时,是在它们的语句被求值之后才执行。①②例子中,--a 和 a--  都相当于 a= a-1; 并没有为了得到其他值而进行提前操作。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。