为了账号安全,请及时绑定邮箱和手机立即绑定

var num=1; num=num++或num=num+1 num已经赋值为1了为什么还可以再次赋值还不等于1

var num=1; num=num++或num=num+1 num已经赋值为1了为什么还可以再次赋值还不等于1

慕桂英3523886 2017-09-30 17:08:47
查看完整描述

5 回答

已采纳
?
ThinkSummer

TA贡献8条经验 获得超3个赞

var num=1

        声明一个变量 num ; 将1赋值给num。这是一个声明变量并赋值的表达式。“=”是赋值符号,不是数学里的=号。

有了num这个变量后,你可以再次给这个num赋值。这么说吧,这个num是个筐,你装进去4,它里面存的就是4,你放进去9,它里面存的就是9, 将来你学面向对象了,你放进去一头大象,它里面就存了一头大象,甚至你可以放进去一个地球。

声明num变量后,在内存地址上相应的就开辟了一块内存地址,你赋值的东西就存在这个内存地址上,你可以控制着擦写。要想不被重新赋值,你要声明常量 const num = 1,编译器就不允许重新赋值了。

一看你就是初学者,=不是等于号,是赋值符号,要转过这个弯儿。

查看完整回答
1 反对 回复 2017-09-30
?
Developer_Zuck

TA贡献112条经验 获得超42个赞

对这个问题,我有不同的看法,希望能够帮助你理解。
1:var num =1;是定义一个变量为num,并将变量的初始值设置为1,既然是变量,就是值在后边是可以重新被赋值的。
2:关于num++/++num的问题。在没有进行运算的时候,两者作用一样,都是num+1的意思,但是如果在进行运算,那么就要注意:num++先跟表达式进行运算,然后再将运算的值赋值给左边,然后自身增加1,++num则是在运算之前,先将自身加1,再参与运算!
3:num++实际上等同于num=num+1。
num=num++其实存在陷进的,虽然最后计算的结果是2!但是尤其注意,并不是右边运算完成之后将值赋值给左边得到的,恰恰相反!运算完后左边的num的值还是1的!只不过在完成运算完成后,num自增1而得到的!
将你的题目稍稍改变一点,你就知道了。
var num =1;
var num2=1;
num2=num++;
请问此时num=2,num2=1的!
好好体会一下这个例子,加上上面的,你就懂了!

查看完整回答
反对 回复 2017-10-07
?
落叶1111

TA贡献57条经验 获得超9个赞

无聊的问题

查看完整回答
反对 回复 2017-10-07
?
玫瑰札记

TA贡献8条经验 获得超36个赞

1、
var num=1;
var num=2;
最后 num 的值为2,
即 所谓变量就是可以变化的,随着最后赋的值变化而变化
2、
var num=1;
num=num+1;
相当于 我有一个杯子(容器),里面原来有100克水,现在我需要200克的水,我可以用这个杯子再盛100克水,这个杯子就有200克水了,并且还是原来的杯子。
——
留给你一个问题,为什么不这样写
var num=1;
num2=num+1;
我也能得到一个杯子,并且杯子里正好有200克水呢?

查看完整回答
反对 回复 2017-10-01
?
一江西流

TA贡献10条经验 获得超2个赞

因为操作符的优先级不同,++和+优先级高于=,所以先执行++或者+操作,再进行赋值

查看完整回答
反对 回复 2017-09-30
?
拖鞋_

TA贡献453条经验 获得超223个赞

如果你能理解了传值赋值 和引用赋值  这些问题都能迎刃而解了

查看完整回答
反对 回复 2017-09-30
  • 5 回答
  • 0 关注
  • 4085 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信