从语言设计的角度来看,为什么:
if('k' in null);
TypeError: Cannot use 'in' operator to search for 'k' in null
BUT:
for('k' in null);
打印undefined
:
这是语言设计的缺陷吗?
答案 0 :(得分:2)
从设计的角度来看,很难说k in null
的适当回报值应该是什么(true
显然是错误的,但false
具有误导性),但很容易说在for-in
语句中,您应该跳过循环。
我根本没有同意这个决定 - 我认为for (k in null)
应该抛出一个错误,特别是如果在严格模式下运行。但你可以看出差异会如何产生。