gpt4 book ai didi

javascript - for-in 循环 VS in-operator

转载 作者:行者123 更新时间:2023-11-30 12:12:10 25 4
gpt4 key购买 nike

我认为自己是 JS 老手,但直到现在我才第一次意识到 for ... in 循环的作用与 in 运算符非常不同:

"length" in []; // true
for (k in []) { if(k == "length") alert(); }; // k will never be "length"

所以这让我想到了我的问题:为什么 in 运算符会出现在 for ... in 循环中?

恕我直言,这完全是误导,因为它做了不同的事情。此外,首先 for 操作使 JS 引擎获取所有可枚举属性,然后在该子集上使用 in 运算符的想法是错误的:仅仅是因为 in 运算符接受所有 可能的属性,无论是原型(prototype)属性还是自己的属性,无论是访问器属性还是数据属性。那么如果 for 已经减少到可枚举的对象属性,它如何过滤掉任何东西呢?

最佳答案

So this brings me to my question: why is the in operator at all present in the for ... in loop?

事实并非如此。 for … in 循环构造中的 in 标记不是运算符,就像它不是表达式中的运算符一样

x = {in: 5}.in

它只是区分 for ( … in … ) 的标记之一来自for (…; …; …)环形。鉴于没有for (...) 语句,in 标记在relational expression 中的作用永远不会与此发生冲突。

关于javascript - for-in 循环 VS in-operator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33454474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com