js对象类型可以分为基本类型和复杂类型(也叫引用类型)
一、基本类型
String、Number、Boolean、Null、Undefined、Symbol
Symbol是ES6引入的一种新的原始数据类型,表示独一无二的值
二、复杂类型
Object、Array、Function
三、创建数组
//第一种 new 一个Array对象
var arr=new Array();
arr[0]=1;
arr[1]="a";
console.log(arr);// [ 1, 'a' ]
//第二种
var arr=new Array('a','b','c',1);
console.log(arr);// [ 'a', 'b', 'c', 1 ]
//第三种
var arr=[1,2,3,'c']
console.log(arr);//[ 1, 2, 3, 'c' ]
四、创建对象
//第一种 new
var obj=new Object();
obj.name="one";
obj.age=18;
console.log(obj);//{ name: 'one', age: 18 }
//第二种 字面量
//1.简单字面量
var obj={};
obj.name="two";
obj.age=19;
console.log(obj);//{ name: 'two', age: 19 }
//2.嵌套字面量
var obj={
name:'three',
age:20,
say:function(){
console.log('my name is '+this.name)
}
}
console.log(obj)//{ name: 'three', age: 20, say: [Function: say] }
//第三种 工厂模式
function Person(name,age){
return {
name:name,
age:age,
say:function(){
console.log(this.name)
}
}
}
var p=Person('小华',18);
p.say();//小华
console.log(p);//{ name: '小华', age: 18, say: [Function: say] }
//第四种 构造函数
function Person(name,age){
this.name=name;
this.age=age;
this.say=function(){
console.log(this.name)
}
}
var p=new Person('小米',18)
p.say();//小米
console.log(p);//Person { name: '小米', age: 18, say: [Function] }
//第五种 公有、私有
function Person(name,age){
//私有
var name=name;
var age=age
var say=function(){
console.log(name)
}
return {
//公有
say:say
}
}
var p=Person('cc',20);
p.say();//cc
console.log(p)//{ say: [Function: say] }