从语言设计的 Angular 来看,为什么:
如果('k'为空);
TypeError:无法使用“in”运算符在 null 中搜索“k”
但是:
对于('k'为空);
打印undefined
在 ECMAScript 规范中:
是语言设计缺陷吗?
最佳答案
从设计的 Angular 来说,很难说k in null
的合适的返回值应该是什么(true
显然是错误的,但是false
具有误导性),但很容易说在 for-in
语句中,您应该跳过循环。
我完全不同意这个决定 - 我认为 for (k in null)
应该抛出错误,尤其是在严格模式下运行时。但是您可以看到差异是如何产生的。
关于javascript - 为什么 if(key in null); for(key in null)时抛出异常;不,是语言设计上的缺陷吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20854100/