JavaScript类型

(1)值类型:数值、布尔值、null、undefined。

(2)引用类型:对象、数组、函数。

 1.string



var str="hongda";
var str2=str;
str2="hongdaqi";
console.log(str);
console.log(str2);


JavaScript:值类型 引用类型_数组

2.Object

String/Number这种的类的对象,它没有其他的属性(string有length,但不能修改),一般都是直接赋值的,但它本身是个object,可以添加属性来查看是否是引用类型。



var str=new String("hongda");
var str2=str;
="omg";
console.dir(str);
console.dir(str2);


JavaScript:值类型 引用类型_数组_02

修改对象:



var person={name:"hongda",age:27};
var man=person;
="hongdada";
console.dir(man);
console.dir(person);


JavaScript:值类型 引用类型_赋值_03

重新赋值一个新的对象:



var person={name:"hongda",age:27};
var man=person;
man={name:"hongdada",age:28};
console.dir(man);
console.dir(person);


JavaScript:值类型 引用类型_添加属性_04

 3.Array



var arr=[0,1,2,3];
var arr2=arr;
arr[0]="hongda";
console.dir(arr);
console.log("");
console.dir(arr2);


JavaScript:值类型 引用类型_数组_05

一个小题目:



var a=[0],b=a; 
b[0]=2;
console.log(a+b); //22

a=[0], b=a, b=[1];
console.log(a+b); //01


第2个其实数组相加实际上会调用数组的toString方法,然后拼接字符串。



var arr=[0,1,2,3];
var arr2=arr;
var str=arr+arr2;
console.log(typeof str);
console.log(str);


JavaScript:值类型 引用类型_javascript_06