# JavaScript 入门 Day 6 **Published by:** [aow](https://paragraph.com/@ashonthewall/) **Published on:** 2022-03-20 **URL:** https://paragraph.com/@ashonthewall/javascript-day-6 ## Content 大概还有30个练习我们就能学完JS的基础知识了。 Build JavaScript Objects object是一个非常重要的概念,它很像array,不同点在于array里面装的data是通过排序(Index)来标注,比如myArray[0], myArray[8]等等,而object是通过命名来标注,比如 猫【名字:kitty,年龄:2,性别:公】这样子,更符合我们现实世界中对物品属性的标注。const cat = { "name": "Whiskers", "legs": 4, "tails": 1, "enemies": ["Water", "Dogs"] }; // object中的各种“标签”,比如上面的”name”, “legs”等,都是属于string,所以别忘了加 “ ”。 Accessing Object Properties with Dot Notation Accessing Object Properties with Bracket Notation access array中的data需要用[ ],而在object中,由于有了“标签”,可以用 .标签的方式和 [ ]对方式都ok。 当标签中带空格的时候,比如 “ family name”,那么用[“family name”],而不能用.family name,因为计算机无法识别后者。 Accessing Object Properties with Variables 在object中,除了直接引用标签外,还可以用variable赋值。const testObj = { 12: "Namath", 16: "Montana", 19: "Unitas" }; const playerNumber = 16; const player = testObj[playerNumber]; 这样就可以找到testObj这个object中标签为16的项。 同样的,只需要重新赋值playNumer = 19, 就可以找到标签为19的项。以此类推。 Updating Object Properties object里面的property是可以被修改的。比如const myDog = { "name": "Coder", "legs": 4, "tails": 1, "friends": ["freeCodeCamp Campers"] }; myDog.name = "Happy Coder"; 修改方式有两种,可以用.property 或者 [“property”],和之前说的一样。 Add New Properties to a JavaScript Object 增加property和修改的操作是一样的。 Delete Properties from a JavaScript Object 删除怎么办呢?我们使用delete这个命令。const myDog = { "name": "Happy Coder", "legs": 4, "tails": 1, "friends": ["freeCodeCamp Campers"], "bark": "woof" }; delete myDog.tails; 很简单。 Using Objects for Lookups 一个非常有意思的练习。可以把它理解成object可以当作词典使用。 当我们明确知道检索对象是一个有限的目录时,与其通过if statement或者switch去循环验证条件,还不如把整个检索对象编译成一个object,然后通过一个function的关键词去检索找到结果。function phoneticLookup(val) { let result = ""; const lookup = { "alpha": "Adams", "bravo": "Boston", "charlie": "Chicago", "delta": "Denver", "echo": "Easy", "foxtrot": "Frank" }; result = lookup[val]; return result; } phoneticLookup("charlie"); 这里,我们通过把result赋值给object lookup的一个检索项,来返回function phoneticLookup的数据。 Testing Objects for Properties 这里讲到一个验证property是否存在的方式 : .hasOwnProperty(propname) 如果存在,会返回true,不存在,返回false。 然后练习部分通过一个function的方式,两个arguments一个是object,另一个是待验证的property,来使用这个.hasOwnProperty命令,得到简洁的结果。function checkObj(obj, checkProp) { if (obj.hasOwnProperty(checkProp)){ return obj[checkProp]; } else { return "Not Found"; } } Manipulating Complex Objects Accessing Nested Objects Accessing Nested Arrays Record Collection obejct中可以放很多不同类型的data type,比如arrays, booleans, number, string, function甚至嵌套object。 总之,object就是一个大词典,什么都能装。 这里,无论access array还是objects, 方法之前都讲过,很简单,唯一需要的是细心。 个人感觉代码入门之后,语法什么的都不是问题,和财务有点像,大部分时候都是在解决因为粗心或者思路错误带来的问题。 好了,今天的练习先到这里,object这个概念初体验完成,概念很简单,但是基础很重要。 明天学习loops,然后所有的基础知识应该能学完。 在这里和这里也可以找到我。 https://discord.gg/madnfts https://discord.gg/Z25p8gkZWx ## Publication Information - [aow](https://paragraph.com/@ashonthewall/): Publication homepage - [All Posts](https://paragraph.com/@ashonthewall/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@ashonthewall): Subscribe to updates