理解 for in 循环 (javascript)
Understanding for in loop (javascript)
我对 JS 有点陌生,我想了解 for/in 循环的真正工作原理,这里有一些示例代码:
phoneBook = {};
phoneBook.bill = { name : "bill", lastName "hayder" };
phoneBook.steve = { name : "steve", lastName "garcia" };
for ( obj in phoneBook )
{
console.log(obj);
};
当我 运行 这段代码得到 bill 和 steve 作为输出时,我的问题是这是否是迭代器持有的内容,为什么我被允许做 phoneBook[obj] 并使用它?如果我手动输入 phoneBook[bill] 我得到一个错误,我只能 phoneBook.bill 或 phoneBook["bill"].
感谢您的帮助。
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认为bill是一个变量,并试图找到这个。这就是为什么您应该使用 phoneBook['bill']
或 phoneBook["bill"]
。您可以使用这种字典形式,但我建议您使用 phoneBook.bill
方法。
希望我回答了你的问题。 :)
修复了一些语法错误
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 正在查找包含 string bill
你可以试试这个方法
var bill = 'bill';
phoneBook[bill]
当你写phonebook[something]
时,意味着something
应该是一个表达式,returns一个字符串,它应该找到名称为该字符串的属性。
在phonebook[obj]
的情况下,变量obj
的值将是字符串"bill"
或"steve"
,然后它会查找对应的属性.
如果你写 phonebook[bill]
,它会尝试使用 bill
作为变量名,并期望它包含一个名为 属性 的字符串。但是没有名为 bill
的变量,所以这会出错。
我对 JS 有点陌生,我想了解 for/in 循环的真正工作原理,这里有一些示例代码:
phoneBook = {};
phoneBook.bill = { name : "bill", lastName "hayder" };
phoneBook.steve = { name : "steve", lastName "garcia" };
for ( obj in phoneBook )
{
console.log(obj);
};
当我 运行 这段代码得到 bill 和 steve 作为输出时,我的问题是这是否是迭代器持有的内容,为什么我被允许做 phoneBook[obj] 并使用它?如果我手动输入 phoneBook[bill] 我得到一个错误,我只能 phoneBook.bill 或 phoneBook["bill"].
感谢您的帮助。
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认为bill是一个变量,并试图找到这个。这就是为什么您应该使用 phoneBook['bill']
或 phoneBook["bill"]
。您可以使用这种字典形式,但我建议您使用 phoneBook.bill
方法。
希望我回答了你的问题。 :)
修复了一些语法错误
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 正在查找包含 string bill
你可以试试这个方法
var bill = 'bill';
phoneBook[bill]
当你写phonebook[something]
时,意味着something
应该是一个表达式,returns一个字符串,它应该找到名称为该字符串的属性。
在phonebook[obj]
的情况下,变量obj
的值将是字符串"bill"
或"steve"
,然后它会查找对应的属性.
如果你写 phonebook[bill]
,它会尝试使用 bill
作为变量名,并期望它包含一个名为 属性 的字符串。但是没有名为 bill
的变量,所以这会出错。