首页 > 其他 > 详细

--num 和 num-- 陷阱

时间:2017-11-14 13:54:17      阅读:255      评论:0      收藏:0      [点我收藏+]

一、首先看四个例子

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

--num1
document.writeln(num1);           //8

 

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

num1--
document.writeln(num1);           //8

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

 

var num1 = 9;
var num2 = --num1 + 2;

document.writeln(num1);             // 8
document.writeln(num2);           // 10

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

 

 ④

var num1 = 9;
var num2 = num1-- + 2;

document.writeln(num1);             // 8
document.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);             // 11
document.writeln(num4);             // 11

得到 num1都被减了1

 


var num1 = 2;
var num2 = 10;

var num3 = num1-- + num2;
var num4 = num1 + num2;

document.writeln(num3);             // 12
document.writeln(num4);             // 11

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

 

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

 

--num 和 num-- 陷阱

原文:http://www.cnblogs.com/wdz-freddy/p/7831442.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!