我是JS的新手,我试图了解for / in循环是如何工作的,这里是一些示例代码:
phoneBook = {};
phoneBook.bill = { name : "bill", lastName "hayder" };
phoneBook.steve = { name : "steve", lastName "garcia" };
for ( obj in phoneBook )
{
console.log(obj);
};
当我运行这段代码时,我得到账单和史蒂夫作为输出,我的问题是,如果这就是迭代器为什么我可以做phoneBook [obj]并使用它?如果我手动输入phoneBook [bill]我收到错误,我只能通过phoneBook.bill或phoneBook [“bill”]。
感谢您的帮助。
答案 0 :(得分:0)
Javascript对象只是键值对。
phoneBook = {};
phoneBook.bill = { name : "bill", lastName: "hayder" };
phoneBook.steve = { name : "steve", lastName: "garcia" };
在此示例中,phoneBook
对象具有两个键值属性bill
和steve
。但属性本身是对象,每个对象都包含属性name
和lastName
。
键值对可以通过两种方式访问:对象方式和字典方式。对象方式表示通过phoneBook.bill
访问,字典方式表示通过phoneBook['bill']
访问。请注意,使用字典方式意味着只需将属性名称传递给对象即可。
现在,phoneBook[bill]
无效,因为JS认为该帐单是一个变量,并试图找到它。这就是您应该使用phoneBook['bill']
或phoneBook["bill"]
的原因。您可以使用此词典表单,但我建议您使用phoneBook.bill
方法。
我希望我回答你的问题。 :)
答案 1 :(得分:0)
修复了一些语法错误
phoneBook = {};
phoneBook.bill = { name: "bill", lastName: "hayder" };
phoneBook.steve = { name: "steve", lastName: "garcia" };
for (obj in phoneBook)
{
console.log(obj);
};
Javascript基础
phoneBook有财产账单
在javascript中,可以使用
引用此属性账单phoneBook.bill
phoneBook['bill']
当您引用phoneBook [bill]时,您将收到错误,因为javascript正在查找包含字符串 帐单
的变量你能做的就是这样试试
var bill = 'bill';
phoneBook[bill]
答案 2 :(得分:0)
当你写phonebook[something]
时,它意味着something
应该是一个返回字符串的表达式,它应该找到名称就是该字符串的属性。
对于phonebook[obj]
,变量obj
的值将是字符串"bill"
或"steve"
,然后它会查找相应的属性。< / p>
如果你写phonebook[bill]
,它会尝试使用bill
作为变量名,并期望它包含一个命名属性的字符串。但是没有名为bill
的变量,因此会出错。