javascript检测变量是否被定义的方法
ringa_lee
ringa_lee 2017-04-11 11:38:23
[JavaScript讨论组]

javascript有没有方式检测变量是否被定义呢?

这里讨论的是否被定义;是指var message;这样
没有赋值也算是定义了;

已知方式

var message;
console.log(message==undefined); //有定义的话返回true;没有的话直接报错;

另一方法

var message;
console.log(typeof message=="underfined"); 

这种方式,没有赋值和没有被定义都返回true;不会出现报错;但是不能区分不赋值和没有被定义.

有没有一种方式可以区分没有赋值和没有被定义而不报错的呢?

ringa_lee
ringa_lee

ringa_lee

全部回复(4)
巴扎黑

如果是在全局环境,最合适的是用in操作符:

!('message' in window) // true则没定义
'message' in window && message === undefined // true则没赋值

如果不限,那么:

message === undefined // 抛异常则没定义,true则没赋值
PHP中文网

如果该变量附属于全局作用域,将 message 改为 window.message 即可

否则,最好的做法是:凡是用到的变量都要先声明,根据实际情况赋一个合理的空值(null,0 etc.)给变量,以此来检测

PHP中文网

用var这种定义没赋值和没定义基本是一样的。定义之后,在window对象上能看到属性,但值是undefined。

巴扎黑

try{
console.log(message)
}catch(e){
console.log(xxx+'is undefined');
}

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号