javascript有没有方式检测变量是否被定义呢?
这里讨论的是否被定义;是指var message;这样
没有赋值也算是定义了;
已知方式
var message;
console.log(message==undefined); //有定义的话返回true;没有的话直接报错;
另一方法
var message;
console.log(typeof message=="underfined");
这种方式,没有赋值和没有被定义都返回true;不会出现报错;但是不能区分不赋值和没有被定义.
有没有一种方式可以区分没有赋值和没有被定义而不报错的呢?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
如果是在全局环境,最合适的是用in操作符:
如果不限,那么:
如果该变量附属于全局作用域,将
message改为window.message即可否则,最好的做法是:凡是用到的变量都要先声明,根据实际情况赋一个合理的空值(null,0 etc.)给变量,以此来检测
用var这种定义没赋值和没定义基本是一样的。定义之后,在window对象上能看到属性,但值是undefined。
try{
console.log(message)
}catch(e){
console.log(xxx+'is undefined');
}