Javascript 如何检查变量是否已声明,即使它尚未声明';没有定义吗?
这个问题: 不考虑已声明但未定义的变量(与未声明和未定义的变量相反)。具体来说,如果我想检查是否已声明Javascript 如何检查变量是否已声明,即使它尚未声明';没有定义吗?,javascript,variables,undefined,undeclared-identifier,Javascript,Variables,Undefined,Undeclared Identifier,这个问题: 不考虑已声明但未定义的变量(与未声明和未定义的变量相反)。具体来说,如果我想检查是否已声明x,这: typeof x==“未定义” 不会的,因为 var x; //<- declared but undefined // idontexist not declared typeof idontexist === typeof x; // evaluates to true 尝试使用未声明的变量将抛出一个错误,因此您可以使用try-catch块来确定是否已声明变量 va
x
,这:
typeof x==“未定义”
不会的,因为
var x; //<- declared but undefined
// idontexist not declared
typeof idontexist === typeof x; // evaluates to true
尝试使用未声明的变量将抛出一个错误,因此您可以使用
try-catch
块来确定是否已声明变量
var-myVar;
试一试{
myVar;
log('myVar已声明');
}捕获(错误){
if(参考错误实例){
log('myVar未声明');
}否则{
log('捕获了一些其他错误');
}
}
试一试{
未声明;
log('notDeclared was declared');
}捕获(错误){
if(参考错误实例){
log('notDeclared未声明');
}否则{
log('捕获了一些其他错误');
}
}
我几年前就回答了这个问题…,不记得在哪里了
"variablename" in this //> true : false
其中,这是任何执行上下文,否则将访问该变量名值
function exists( x ){ return x in this }
全局变量和内存泄漏之间的关系很小。也就是说,现在还不清楚为什么你可能需要知道这一点。您可以通过查看源代码来判断是否声明了变量。您正在进行某种代码生成吗?我想,使用
try catch
。这是一个有趣的问题,但对于所有意图和目的来说,在运行时这应该是无关的。这似乎是IDE的工作,而不是代码本身。不必检查if(typeof x==“undefined”)
您只需执行x=x | | 3
即可轻松简化此操作。在运行时查找此操作的简单方法是在JavaScript文件中使用“use strict”指令。如果有任何未声明的变量,这将引发错误。中的用于对象属性,而不是变量。它可能适用于全局范围中的var
-声明,但仅此而已。全局范围不是窗口对象吗?@Umer jo muhamut。并非所有脚本都在浏览器环境中运行!
function exists( x ){ return x in this }