这个问题:
JavaScript check if variable exists (is defined/initialized)
不考虑已声明但未定义的变量的情况(与未声明和未定义相反)。具体来说,如果我想检查是否已声明x
,请执行以下操作:
typeof x == 'undefined'
不会这样做,因为......
var x; //<- declared but undefined
// idontexist not declared
typeof idontexist === typeof x; // evaluates to true
这有意义:如果已声明变量,它将不会成为全局变量,而如果未声明变量,则它将成为全局变量,可能导致内存泄漏。
那么如果声明了未定义的变量,我如何检查javascript?
关于这方面的含义,请考虑以下代码:
function test() {
var x
console.log(typeof x == typeof y); // true
if (typeof x == 'undefined') {
x = 3;
}
if (typeof y == 'undefined') {
y = 5;
}
}
test();
y; // 5
x; // Reference Error
答案 0 :(得分:0)
尝试使用未声明的变量将抛出ReferenceError,因此您可以使用Observable.combineLatest([o1, o2])
.map { (responses: [Response]) -> [PopByCity] in
responses.map { try? JSONDecoder().decode(PopByCity.self, from: $0.data) }
.compactMap { $0 }
}
.subscribe(onNext: { (result: [PopByCity]) in
print(result)
})
.disposed(by: disposeBag)
块来确定是否已声明变量。
try catch
答案 1 :(得分:0)
我几年前已经回答了这个……,不记得在哪里了。
"variablename" in this //> true : false
其中 this 是任何可以访问该变量名值的执行上下文。
function exists( x ){ return x in this }