对象
什么是对象?
JS中的一种数据格式,对象在JS中的数据类型数据为:引用数据类型(也有喜欢叫 复杂数据类型)
如何向变量中存储一个叫做对象的数据呢?
语法1:var obj={键值对}
键值对--- key:value
如果对象内部有多个键值对,那么需要使用逗号间隔
什么是键值对(拿对象obj为例子)
在这个对象中,a 为 key,100 为对应 value
另外一种叫法:a 为 键,100 为对应的值
另外一种叫法:a 为 属性名,100为对应的 属性值
var obj = {
a: 100,
b: 200,
c: 300,
q: 666
}
console.log(obj)
创建对象
创建对象分为两种方式:
1.字面量的形式(使用频率比较高)
语法: var obj={键值对}
2.内置构造函数的创建
语法1: var obj1=new Object() //创建空对象
语法2: var obj1=new Object({a:1,b:2}) //创建一个具有属性或者说具有键值对的对象
注意: new Object 的O是大写的,不是小写的
面试题:JS中创建对象的方式有哪些?
目前暂时是两种
1.字面量的方式
2.内置构造函数的方式
对象的操作(增删改查)
换句话说,就是对内部的属性的操作
分为两种方式
1.点语法
// 1.点语法---查询:获取到对象内部某一个属性对应的属性值
// console.log(obj.a) //1
// console.log(obj.b) //abc
// 2.点语法---新增:向对象内部新增一个属性
// obj.q = 'ABCD'
// obj.w = 'QWER'
// console.log('最新的对象', obj)
// 3.点语法---修改:修改对象内部某一个属性对应的属性值
// obj.c = false
// console.log('修改属性后的对象', obj)
// 4.点语法---删除:删除对象内部的某一个属性
// delete obj.a
// console.log('删除属性后的obj',obj)
2.中括号语法(数组语法)
一般大部分情况下,点语法与中括号语法,作用相同,怎么选择都可以
// 5.中括号语法===查询
// console.log(obj['a']) //1
// console.log(obj['c']) //true
// 6.中括号语法===新增
// obj['q'] = 666
// console.log('新增后的obj', obj)
// 7.中括号语法===修改
// obj['a']=111
// console.log('修改后的obj',obj)
//8.中括号语法===删除
// delete obj['a']
// console.log('删除后的obj',obj)
特殊情况,我们需要使用中括号语法
1.对象的属性名,有纯数字或者特殊符号,这个时候,就只能使用中括号语法
// 特殊情况1
var obj = {
100: '我的属性名时 纯数字100',
'!': '我的属性名是 特殊符号!',
'@': '我的属性名是 特殊符号@'
}
console.log(obj[100])
console.log(obj['100'])
console.log(obj['!'])
console.log(obj['@'])
2.如果涉及变量相关的时候,也需要使用中括号
// 特殊情况2
var obj = {
a: 1,
b: 2,
name: 'abc'
}
var myName = 'name'
for in 循环遍历对象
for in 一个循环语句
语法: for(var i in 要遍历的对象){循环要执行的代码}
对象:一种数据格式
遍历:一般我们会说‘遍历对象’/‘遍历数组’
‘遍历对象’ 想办法拿到对象内部所有的属性名与属性值