Java中的变量机制以及JS中的搜寻参数机制区别
Posted 张怼怼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的变量机制以及JS中的搜寻参数机制区别相关的知识,希望对你有一定的参考价值。
JAVA:
public class Hello { public static void changeInt(String str){ if (str == "blue") { str = "red"; } else{ str = "green"; } System.out.println(str); } public static void main(String[] args) { String str = "blue"; changeInt(str);//red } }
可以看出str值为red,已经被修改。
JS:
1:
var color="blue"; function changecolor(color){ if(color=="blue"){ color="red"; } else{color="green";} console.log(color);//red } changecolor(color); console.log(color);//blue
2:
var color = ‘blue‘; function changecolor () { if (color === ‘blue‘) { color = ‘red‘; } else{ color = ‘green‘; } } changecolor(); console.log(color);//red
完全不同的执行结果 这是因为 参数的传递是值的传递
搜寻参数的机制是first local then global, 如果local没找到则到global中找。
- 如果函数parameter中没有定义color,函数中使用的color的值就是从global获取的“blue”;
- 如果函数parameter中定义了color,这就相当于新建了一个local变量,在图二例子中,该parameter is initialized, but hasn‘t been assigned a value, 此时color的值是undefined。
以上是关于Java中的变量机制以及JS中的搜寻参数机制区别的主要内容,如果未能解决你的问题,请参考以下文章