如果没有"use strict";,这段JavaScript可以很好地运行。但是,如何在严格模式下检查全局变量是否存在以及它具有什么类型而又不会遇到undeclared variable错误?

if (!(typeof a === 'object')) {
    a = ... /* complex operation */
}

最佳答案

在严格模式下,创建隐式全局变量是错误的。您必须显式创建全局:

window.a = ... /* complex operation */


typeof a应该仍然像以前一样工作。

09-19 21:21