*对象__,实质上是存储数据的一个集合。*
声明对象的方式有如下两种:new操作符 和 字面量(*)
let obj = new Object()
为对象添加属性的方式同样有两种
obj.name = 'Bob'
obj['_sex'] = 'boy'
字面量的声明方式更为常用。在使用对象字面量表示法定义对象时,并不会实际调用Object构造函数。
let obj ={}
存取值可以使用.
和 ['属性名']
的方式。
let obj = new Object()
obj.name = 'Linda' //存值
console.log(obj.name) // 取值
let obj = {
name:'robot',
age:29
}
obj.name
而字面量的创建方式除了可以使用字符串的属性名还可以使用数值型的属性名。而new关键字的创建方式,只能使用字符串的属性名
let obj = new Object()
obj.1 = '12' // Uncaught SyntaxError: Unexpected number
let obj1 = {
1:'id'
}
但是如果我想获得属性名是1
的属性值,是会报错的。
console.log(obj1.1) // Uncaught SyntaxError: Unexpected number
那么另一种获取属性值的方式就出现了:[]
。
console.log(obj1[1])
同样,也解决属性名中有空格的问题
obj["first name"] //中间有空格
obj1.first name // Unexpected identifier
而且当我们属性名是一个变量的时候,也必须使用[]
let obj ={name:'test'}
let a = 'name'
obj[a] // 'test'
函数传递可选参数
function displayInfo(args){
let output = "";
if(typeof args.name == 'string'){
output += "Name:" +args.name + "\n"
}
if(typeof args.age == 'number'){
output += "Age:" +args.age + "\n"
}
return output
}
// 两个参数
displayInfo({
name:'Nicholas',
age:29
})
// 一个参数
displayOnfo({
name:'Greg'
})
// 没有参数
displayInfo({})
什么是原始包装类 如下:
let str = new String()
let bool = new Boolean()
let num = new Number()
typeof str // object
typeof bool // object
typeof num // object
三者其实都是属于object类型的,如果想深入了解,Y请移驾