要从是什么,为什么,怎么做去分析问题,从理解,记忆,运用去实践知识
理解对象
JS有8种数据类型,7种原始类型,原始类型就是只存一种东西的类型,比如字符串数字之类的
还有一种就是对象,他存的内容是键值对。就是把一堆的“名:内容”,放一起,放一个大括号里{名1:内容1,名2:内容2,名3:内容3, … },
要注意,对象里的每个名是字符串。只能是字符串,内容随便
创建对象
let user = new Object(); // “构造函数” 的语法
let user = {}; // “字面量” 的语法
// 在创建对象的时候,就可以往里面塞东西,
// 键(或者也可以叫做“名字”或“标识符”),位于冒号 `":"` 的前面
// 值在冒号的右边。
let user = { // 一个对象
name: "John", // 键 "name",值 "John"
age: 30 // 键 "age",值 30
};
对象里的键值,你就理解成名字,内容也一样,这些名字和内容,是可以被增删改查的,对象名加个.就行了
// 读取文件的属性:
user.name; // John
user.age; // 30
属性简写
比如当前作用域里有age
这个变量了,你要拿这个当做内容的话,恰好名字也是这个,就写成这样了,这种情况在编码中很常见
let age: 22;
...
let demo = {
age:age
}
// 这样的情况就可以简写
let demo = {
age,
}
判断存在
为什么要判断某个属性有没有?
因为你访问一个不存在的值,js不会报错。只会给出值的
undefined
法一:?通过undefined判断存在否?
大部分文章都这样,写到这种程度,就点到为止了,但是对于没有整体思维的学生来说…不知道怎么通过undefined,所以我们应该…
法二:了解一个新的操作符in
let user = { name: "John", age: 30 };
alert( "age" in user ); // true,user.age 存在
alert( "blabla" in user ); // false,user.blabla 不存在。
in
的左边必须是 属性名
大部分文章都这样,写到这种程度,就点到为止了,但是对于没有整体思维的学生来说…不知道为什么必须是属性名,所以我们应该…
思考
大多数文章告诉你怎么用就完事了,你只是他说啥你记啥,几乎没人告诉你为什么这样,你也不会思考这个东西怎么来的。
但是只有你考虑了这些,你才能真正掌握这个,而不是死记硬背,还用不上
所以,思考一下有了undefined
为什么还有in这个操作符的出现?
遍历对象
除了增删改查,最重要的还有就是 遍历
为了遍历一个对象的所有键(key),可以使用一个特殊形式的循环:
for..in
。
这跟我们在前面学到的for(;;)
循环是完全不一样的东西。
思考
对象排序?
星辰大海
JavaScript 中的对象非常强大。这里我们只接触了其冰山一角。在后面的章节中,我们将频繁使用对象进行编程,并学习更多关于对象的知识。
作业
检查空对象