这三段代码都是完全不同的
问题都过于基础, 你需要去补充基础知识, 最好成体系的阅读一下相关书籍.
问题1:
你的例子1这里的期望输出就是1, 期望输出2是错误的, 原因就是作用域的问题.
change
内声明的那个 num
只拥有局部作用域, 在函数运行结束时即销毁, 并且对它的赋值或其它任何操作都不会影响到全局变量, 所以你的实际上例子1中的全局的 num
变量从未被修改.
例子2中, 你的 change
内并没有新声明变量, 所以访问的是全局的 num
变量, 它被修改为2了, 自然你在后面访问全局变量 num
的时候是2了
(所以这两个程序看起来只差了个 var, 实际上是完全不同的)
问题2:
函数是否有返回值完全取决于你的需求, 你的第三个例子就是为了改 num
这个全局变量而没有实质意义上的功能才冒出来的一个莫名其妙的问题...
PS: 全局变量因为各个函数都可以访问所以对它的管理可能会失控, 因此在程序中使用全局变量都需要极其谨慎, 并且尽量避免. 虽然现在来说这句话对你来说可能还只会产生困惑, 就当打个预防针吧.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…