js基础2
对象像一个容器 可以装不同的属性
1 对象属于一种复合的数据类型 在对象中可以保存多个不同数据类型的属性
2 对象的分类 (内建对象 宿主对象 自定义对象)
栈内存 堆内存
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>对象&&属性名&&属性值</title>
</head>
<body>
<script>
// 总共有7中数据类型
// 基本数据类型是 String Number Undefined Null Boolean Symbole
// 复合数据类型 object
// ====================================================================
var name = '陈恩伊'
var age = '18'
var gender = '女'
//对象可以定义为 对象属于一种复合数据类型 在对象中可以保存多个不同数据类型的属性
// ====================================================================
// 对象的分类
//内建对象 宿主对象 自定义对象
// ====================================================================
// 使用new关键字调用的函数 被称为构造函数constructor
//构造函数是专门用来创建对象的函数
var obj = new Object()
console.log(typeof obj) //object
// ====================================================================
//在对象中保存的值称为属性
//1 向对象中添加属性
//语法:
// 对象.属性名 = 属性值
obj.name = '孙悟空'
obj.gender = '男'
obj.age = 18
console.log(obj)
//2 读取属性
//语法:
// 对象.属性名
console.log(obj.name)
console.log(obj.gender)
console.log(obj.age)
console.log(obj.hello) //undefined 如果读取对象中没有的属性 不会报错 而是会返回undefined
//3 修改属性 和 添加属性是一样的语法
obj.name = '陈恩伊'
console.log(obj.name)
//4 删除属性
//语法:
// delete 对象.属性名
delete obj.name
console.log(obj.name) //undefined 就说明name这个属性已经被删除 不存在了
// ====================================================================
//对象的属性名&&属性值
//如果使用的是特殊的属性名 是不能采用点的方式来操作的
// 需要使用另一种方式
//语法:
// 对象["属性名"] = 属性值
//读取时也需要采用这种方式
var obj = new Object()
obj['123'] = 789
console.log(obj[123])
//使用[]这种方式去操作属性 更加的灵活
//在[]中可以直接传递一个变量 这样变量的值是多少就会读取那个属性
obj['name'] = '陈恩伊'
var a = 'name'
console.log(obj[a]) //'陈恩伊'
//属性值
//js对象的属性值可以是任意的数据类型
obj.test = null
obj.test = undefined
console.log(obj.test)
obj2 = new Object()
obj2.name = '李栋旭'
//将obj2作为obj的属性值
obj.test = obj2
console.log(obj) //{{test:{...}}}
console.log(obj.test) //{name:'李栋旭'}
console.log(obj.test.name) //李栋旭
console.log(typeof obj.test.name) //string
// ====================================================================
//通过 in运算符 可以检查一个对象中是否含有指定的属性
//如果有就返回true 没有则返回false
// 语法:
//` '属性名' in 对象
//检查obj中是否含有test2属性
var obj3 = new Object()
console.log('test2' in obj3) //false
</script>
</body>
</html>

京公网安备 11010502036488号