解释(liveCats中的var cat)语法
Explain for(var cat in livingCats) syntax?
livingCats = {"bob": true, "bo": false};
for(var cat in livingCats)
print(cat);
这将输出对象中的所有名称,无论它是否为真。我不记得将 cat 定义为对象中的任何内容,那么为什么我们可以使用 cat 来打印每个名称呢?猫可以换任何东西,没关系吗?
有关使用 var 和 in 打印密钥的语法的更多信息。
从答案和阅读更多文档来看,cat 变量没有定义,但是一个可枚举的,因此可以在 for.在。猫可以被任何东西取代。
您没有将cat
定义为对象中的任何内容。您将其定义为变量,并在 for
语句中执行此操作。
这使得 JavaScript 将livingCats
对象的每个属性名称依次分配给cat
,并且每次都运行 for
语句中的代码。它不查看属性的值,它只是将属性名称分配给cat
。
您的特定for
循环等效于以下代码:
print("bob");
print("bo");
但请注意,一旦循环结束,cat
仍将在循环中分配最后一个值。
for()
中的变量可以是任何东西,它只是表示对象中的泛型键。
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- jQuery语法添加了var
- Javascript未捕获语法错误意外的标识符错误
- 为什么忽略了eval()代码中的语法错误
- 难以访问的JS环境中的语法错误
- 如何告诉MathJax对下标使用替代语法
- Javascript语法向设置发出sessionStorage值
- 未捕获的语法错误:意外的标记{
- 使用$scope方法时的ControllerAs语法
- "未捕获的语法错误:意外的标记}"
- javascript自执行函数-不同的语法
- 函数的Javascript语法
- WinJS内联绑定语法
- 使用JS函数来使用另一个函数的语法?node.js
- 未捕获的语法错误:无法在“文档”上执行“查询选择器”
- 有没有针对带有表的JavaScript的Markdown语法解析器
- 在递归生成器函数中,yield后面的*(星号/星号)语法意味着什么
- React JS:未捕获(在承诺中)语法错误:在位置 0 的 JSON 中意外<令牌
- 当使用控制器作为语法时,如何从父指令继承属性
- 解释(liveCats中的var cat)语法