JavaScript(变量、作用域和内存问题)
JavaScript是一个变量松散型的语言。(不像Java一样强类型语言。)
JavaScript变量包括两种:基本类型(简单的数据段)和引用类型(对象)。
一、基本数据类型(5种)
Undefined、Null、Boolean、Number、String(按值访问)。
ps:在很多语言中,String都是以对象的形式出现,但是JavaScript就不一样。
二、引用数据类型(按引用访问)
引用数据类型可以动态的给他添加一些属性。(基本数据类型是不可以的呦。)
三、复制变量值
1、基本数据类型
var num1=5; var num2=num1;
下图所示复制过程:
(复制前)
num1 | 5(Number) |
(复制后)
num1 |
5 (Number) |
num2 | 5 (Number) |
2、引用数据类型
var obj1=new Object(); var obj2=obj1; obj1.name="sam"; alert(obj2.name);//"sam"
复制前
obj1 | (Object类型) |
复制后
obj1 | (Object类型) |
obj2 | (Objectt类型) |
讨厌插图片,自行想象obj2并非再次创建一个新的对象,还是和obj2指向同一对象,由上述的代码可知。。。。