可以抛出ReferenceError的所有可能位置是什么?

时间:2013-10-04 22:38:30

标签: javascript semantics referenceerror

给定一个已定义的全局变量exists和一个变量notexists,什么是ReferenceError被抛出并且不被抛出的详尽列表?到目前为止,我赞成:

notexists;
notexists++;

对于不抛出它们的特殊情况也很好奇,例如:

var notexists = notexists; //equivalent to: var notexists; notexists = notexists;
typeof notexists; //special case?

我有没有想念别的什么?

理由:我正在写一个静态分析仪,我必须完全覆盖所有这些情况。

1 个答案:

答案 0 :(得分:0)

编辑此答案以制作详尽的清单。

是:

notexists;
notexists++;
notexists.whatever;
void notexists;
notexists();

没有

notexists = exists;
var notexists = notexists;
typeof notexists;
delete notexists;