判断php中的undefined,js判断变量与对象是否定义(undefined)转换函数

在处理html5的页面取值的时候,发现当取不到的时候报错,js程序不再执行,直接写个修正函数处理

如下:

代码如下

复制代码

//修正未定义的变量

function checkUnfined(value){

if(typeof(value)=='undefined'){

return "";

}

return value;

}

话说判断是否未定义也是很常用的东东

看下面简单例子

代码如下

复制代码

if(typeof(VAL1) == 'undefined') {

var VAL1 = "now defined";

}else {

alert("already defined");

}

alert("VAL1=" + VAL1);

通过判断typeof(VAL1) == 'undefin'可以知道某变量是否定义。顺便提一下,javascript里面没有block的概念,所以尽管VAL1是在if语句种定义的,在外面仍然可以访问。

但是注意如果某个var是在函数内定义的,那么该变量则是该函数的局部变量。

再看下面的例子

代码如下

复制代码

if(typeof(FUN1) == 'undefined') {

alert("now define the FUN1");

function FUN1() {

alert("this is FUN1");

}

}else {

alert("already defined");

}

你觉得输出应该是什么?

正确答案应该是alert("already defined");。函数和变量不同,对于funtion 这个关键字,javascript是在编译期间就搞定了,所以执行时认为该函数已经定义。

这样对于函数判断是否定义可以更具体的用

if(typeof(FUNC1) == 'function')

来检查一个函数是否声明。对于作插件的程序可能会有用。

全局对象,可以用window.变量名方式判断:

代码如下

复制代码

if(window.MyObject == null) {

window.MyObject = {};

}

//或者

if(!("MyObject" in window)) {

window.MyObject = {};

}

不建议使用if(!MyObject)或者if(!window.MyObject)方式判断对象是否存在,因为当MyObject=false或者MyObject=""时,该条件判断也是成立的。

附上判断对象未定义的方法:

代码如下

复制代码

var a;

alert(a == undefined);//第一种

alert(typeof a == "undefined");//第二种

alert(a === undefined);//与第一种类似

//如果是判断一个对象的某个属性是否存在,可以用以下方法:

var obj = {};

alert(obj.hasOwnProperty('a'));

alert('a' in obj);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值