在写Javascript的时候,突然对变量的赋值与传递感到迷惑。因此回顾了一下C,C++,Java等语言的赋值与传参机制,帮助理解Javascript中的赋值与传参。
一、Java中,变量的赋值与传递
1. 变量的类型
分为两种:基本类型和引用类型。其中,
基本类型有:boolean, byte, short, int, long, char, float, double
引用类型有:class, interface, array
2. 变量的赋值
2.1 简单类型变量的赋值
按值传递,将数值存放到变量的存储单元中。
2.2 引用类型变量的赋值
除了null以外,任何变量的赋值都是:
1)如果是初始赋值,则首先创建对象实例
2)把对象实例的引用赋值给变量
因此,当对引用变量进行赋值时,改变的是它存储空间中的地址,而不是原先引用的对象
3. 变量的传递
传递是通过变量之间的赋值实现的。
以下面代码为例:
void fun(Object o) { o.method(); ...... } fun(obj);
调用fun(obj),相当于执行
Object o = obj;
o.method();
......
因此,要理解变量的传递,只需理解好变量的赋值即可。
二、Javascript的赋值与传参
1. 变量的类型
Javascript中的变量分为基本类型和引用类型。其中,
基本类型:字面表达式,NaN
引用类型:Object,function, Array, null
2. 变量的赋值与传参
与Java的实现一样。