js 对象
什么是对象
对象其实就是由一对或者多对属性和属性值组成的属性(键名)数据值(键值)
数据类型
基本数据类型:Number String Boolean Undefined Null
引用数据类型:function Object 操作的是存在内存堆里的数据
创建对象
type {} object
两种方式
1、字面量
2、new 构造函数 创建对象
1、字面量
对象的属性值是一个ASCII码表的先后顺序排列
对象的属性是字符串类型
对象的属性如果是符合标识符规范的,则可以不加引号,否则必须加引号
对象属性可以使用关键字,但最好用引号引起来
var wuwei={
name:'wuwei',
age:18,
sex:'不详',
'function':"11"
}
如果对象的属性标识遵循标识符规范的字符串,我们就采用[]的语法方式
中括号的操作符里面是变量或字符串
console.log(wuwei[‘function’])
点操作符后面必须是符合标识符规范的属性
console.log(wuwei.age)
2、new操作符创建对象
js自带的构造函数 Object
var wuwei = new Object()
wuwei.name='wuwei';
wuwei.age=18
console.log(wuwei)
但是字面量的方式更加直观,简单,而且还有封装的感觉。
两种创建对象的方法在使用上不要杂糅
var wuwei={}
wuwei.name=“张三”
除非扩展对象的属性,否则在最开始定义时不要这样去写
对象的属性值
对象的属性值,可以是任何类型,比如数字,字符串,布尔值,对象,数组
对象的方法
如果对象的属性值是一个函数,我们就称这个函数是对象的方法
var xiaoming={
name:'小明',
age:16,
sex:'男',
sayHello:function()
{
alert('你好,我是'+xiaoming.name);
alert('你好,我是'+xiaoming.age);
}
对象的特点
属性是字符串类型,如果不是会隐式的转化成字符串类型
属性的值可以是任意数据类型,也可以是变量
属性名也可以是变量
var a ='name';
var b='wuwei';
obj={
[a]:b
}
console.log(obj)
对象的操作
.操作符
object.name
[]操作
obj[‘name’] 此时name是一个字符串
obj[name] 此时的name是一个变量
对象的遍历
var obj={
name:“李四”,
age:19,
sex:“男”
}
for(var key in obj){
console.log(key)
console.log(obj.key) 错误因为.操作符后面不能是变量只能是符合规定的字符串
console.log(obj[key])正确 因为key是一个变量所以只能用[]操作符
}