5-3不明白

5-3不明白

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title> ++和--的运算</title>
</head>
<body>
    <script>
//代码补充
var a=4,
   b=5,
   g=a++,
   h=--b,
   c=(a++)+(--b),
   d=(a++)-(--b),
   e=(a++)*(--b),
   f=(a++)/(--b),
   i=g+h,
   j=g-h,
   k=g*h,
   l=g/h;
   
   console.log(c);  //  8  ???
   
   console.log(d);  //  4  ???
   
   console.log(e);  //  7  ???
   
   console.log(f);  //  Infinity  ???
  
   console.log(g);  //  4

   console.log(h);  //  4

   console.log(i);  //  8

   console.log(j);  //  0

   console.log(k);  //  16

   console.log(l);  //  1
</script>
</body>
</html>

为什么c,d,e,f的数值是这样的呢?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> ++和--的运算</title>
</head>
<body>
<script>
//代码补充
var a=4,
b=5,
    g=a++,//a++ 赋值给g后+1使 a = 5;
    h=--b,//--b 赋值给h前-1  b = 4;
c=(a++)+(--b),
d=(a++)-(--b),
e=(a++)*(--b),
f=(a++)/(--b),
i=g+h,
j=g-h,
k=g*h,
l=g/h;
    console.log(c);  //  8  ???
    // a++ 的意思是用当【计算完成】后再+1
    // --b 的意思是先-1来【计算】
    //c = (a++) + (--b)
    // a++ 在计算时为5 , --b 要先减1 再来计算 这时值为3
    //也就是 c = 5 + 3;   所以等于8,
    //计算完成后的值, a = 6, b = 3 
    console.log(d);  //  4  ???
    // 因为上面计算后 a 和 b 的值都变了
    // a = 6 , b = 3
    //d = (a++) - (--b)
    //d = 6 - 2 , 等于 4
    //计算完成后 a = 7 , b = 2
    console.log(e);  //  7  ???
    //e = (a++)*(--b)
    //e = 7 * 1;
    // 计算完成后 a = 8 , b = 1
    console.log(f);  //  Infinity  ???
    // f = (a++)/(--b)
    // f = 8 / 0;
    // 8无法除0
console.log(g);  //  4
console.log(h);  //  4
console.log(i);  //  8
console.log(j);  //  0
console.log(k);  //  16
console.log(l);  //  1
</script>
</body>
</html>

希望能帮到你。

请点【采纳答案】

如果还有问题,我会全力为你解答。⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄

  • 慕圣5302876 提问者 #1
    非常感谢!
    2017-12-19 23:54:15
  • 慕圣5302876 提问者 #2
    为什么a和b的值会不断变化呢?继承上一个的值?
    2017-12-20 00:00:48
  • 慕圣5302876 提问者 #3
    怎样是a和b的值固定为a=4,b=5呢?
    2017-12-20 00:01:40
lanrtop 2017-12-20 07:46:24

【为什么a和b的值会不断变化呢?继承上一个的值?】

因为 a++  就是在计算完成后+1  将最终结果返回到 原变量中。

--b,就是先-1 ,再将结果放回到原变量中。

你只要知道这个计算过程就明白了。

情景:

var a = 4,b = 5,c;
c = (a++) + (--b); 
 //a++【意思:计算完后+1返回到原变量】 a 的值是4,再计算,计算完成后的值是 5。 
 //--b【意思:计算前-1返回到原变量】使 b 的值-1变成4,再进行计算。
 // 用他们计算之前的值来计算c的值。
 // c = 4 + 4;  c = 8
 //计算完成后a,b的变化
 // a = 5,b = 4 
 //如果进行下个计算,会使用该变量的值。

【怎样是a和b的值固定为a=4,b=5呢?】

var a = 4, b = 5, c;
c = a;     
// c等于4
b = b - 1;
// 因为【给b赋值】,b等于4
c = a + b;
//c 等于8

总结;

只要不使用 a++ ,a-- ,++a, - -a 和 不给原变量赋值。 a , b 就会为固定值。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师