对象
属于是引用类型的数据
对象:是一组属性和方法的集合
在程序员中有一句话:万物皆对象
说明:在生活中如(房子、人、车等…)都有着属性和方法
1.js中的对象
自定义对象:用户创建的对象
内置对象:js提供的对象
宿主对象:根据不同的执行环境划分
2.自定义对象
var cup = {'变量名':属性值,'变量名':属性值}//引号可以省略,但如果有特殊符号则必须加上
//对象字面量
var 变量名 = {字面量的意思是可以看得见的值,如:var cnp = 1;}
//示例:写出杯子的属性
var cnp = {
color: "白色",
size: '400ML',
shape: "圆柱形",
'made-in':'中国'
}// 在声明名属性变量时,如果有特殊符号如-、+、!等...则必须要使用引号''引起来,否则会报错
内置的构造函数
var person = ner Object(O必须要大写)//new调用的函数就是构造函数,结果都是对象
//示例:添加数据
var person = new Object()
person.name = '关克儿';
person.sex = '女';
person.height = 150;
person.wigth = 600;
3.访问属性
//普通写法:用于书写属性名中不带特殊符号和引号的属性名
console.log(对象名.对象中的属性名, 对象名.对象中的属性名 );
//特殊写法(数组专用方式):用于书写属性名中带有特殊符号和引号的属性名,写在中括号里,必须带引号
console.log(对象名['有特殊符号的属性名']);
//也可以在对象外添加新的属性
对象名.对象中的属性名 = 要添加的值;
4.遍历(枚举)属性
for(var k(属性名,代表键值对) in 对象){
//k代表每次获取的属性名
//对象[k] 代表属性名代表属性值
}
//遍历属性
for (var k in student) {
//每次可以获取的属性名
console.log(k, student[k](只能这样写));
}
5.检测属性是否存在
//和undefined比较,如果是true说明不存在
对象.属性值 === undefined(未定义)//true -> 不存在 false -> 存在
//使用js提供的函数
对象.hasOwnProperty('属性名');//第一个O和第一个P是大写//true -> 存在 false -> 不存在
//比较方便好记的方法
'属性名' in 对象 //true -> 存在 false -> 不存在
模板字符串
简化了字符串的拼接
//模板字符串(符号是``反引号,在1的左边)
`模板字符串 ${js表达式}`;
var str = `
标题:${shangpin.title} <br>
价格:${shangpin.jiage}
`
cout.innerHTML = str;