对象
对象的使用
创建的两种方式
// 对象object
// 创建
var dic = new Object
var dic2 = {}
点语法增删改查
// 增删改查 点语法
dic.name = 'ldddragon' //增
dic.age = 18
delete dic.name // 删
dic.age = 20 //改
dic.age // 查
数组联用增删改查
// 增删改查 数组联用 字符串!
dic2['name'] = 'lddragon' //增
dic2['age'] = 18
delete dic2['name'] // 删
dic2['age'] = 20 // 改
dic2['age'] // 查
// console.table(dic2)
对象object的遍历
对象的成员名能访问到数据但是不一定有规律
+ 新的语法 for in 的循环
for in方法
=> 语法:
for (var 变量 in 对象) {代码}
=> 根据对象的成员数来结束循环
案例
var obj = new Object
for (var key in obj){
console.log(obj.key)
// 拿到的可以是对象的成员名称
console.log(key,'=',obj[key])
}
in语法
+ 判断一个成员是否在对象中
=> 使用 in 语法
=> 成员名 in 对象名
=> 对象内的成员名称必须都是字符串
var obj = {name:"jack",age:18}
// 验证
console.log('name' in obj) >>> true
// 返回结果是 true 或 false
扩展
+ windows 的 name 属性
=> 是一个全局天生自带的属性
=> 作用: 在 iframe 标签和 name 属性合作进行跨域的
=> 特点: 固定字符串类型 不管你给什么 最后都是字符串类型 定义变量劲量不要使用name
数据类型存储的区别
+ 数据类型分为两种
=> 基本数据类型
1.Number
2.String
3.Boolean
4.Undefined
5.Null
=> 复杂数据类型
1.Function 函数
2.Object 对象
...
+ 存储是有区别的
+ js打开的内存空间
=> js是一个脚本语言,依赖于浏览器执行
=> 本质是依赖于浏览器上的js解析引擎
=> js本身不打开内存空间 是浏览器运行的时候会占用一段内存空间 js就在这一段空间里面运行
=> 数据类型的储存,就是储存在浏览器分配给js的一段空间里面
+ 浏览器的一段储存空间
1.栈内存
=> 储存机制,先来进栈底
2.堆内存
=> 存储机制,随机存储
+ 基本数据类型的存储
=> 直接把值存储到栈内存里面
+ 复杂数据类型的存储
=> 把数据丢给 堆内存 里面有个对应的地址 然后把地址存在栈内存的变量中
+ 代码的执行
=> 只能拿到 栈里面的 变量 堆内存只能间接拿到
数据类型赋值的区别
1.基本数据类型
=> 就是把变量存储的值直接赋值给另外一个变量
=> 赋值过后的两个变量没有关系了
2.复杂数据类型
=> 因为复杂数据类型中,变量存储的是地址
=> 赋值的时候,实际上是把一个变量的地址给了另外一个变量
=> 赋值过后,两个变量操作一个空间