码迷,mamicode.com
首页 > 其他好文 > 详细

--num 和 num-- 陷阱

时间:2017-11-14 14:46:07      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:递增   改变   科学   col   asc   pre   操作   font   例子   

一、首先看四个例子

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-- 陷阱

标签:递增   改变   科学   col   asc   pre   操作   font   例子   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!