js中怎么判断未定义的对象

来源:互联网 发布:2014中国进出口数据 编辑:程序博客网 时间:2024/04/29 04:21

摘要:1、今天在公司遇到一个问题?有一个页面是几个人在共用,而这个页面我们做的是弹出窗口,可以用到父页面加载好的一些对象。
2、其中一同事不知道其他人在用,就在公用的页面上面加了只有他页面才有的对象。
3、今天测试人员告诉我页面报错了;然后我打开调试工具,发现控制台报错了,“not find variable “xxx””;
4、然后就加了判断结果还是报错;判断的代码如下

// 这是我们判断是写的方法function isEmpty(obj){    if(typeof obj == "undefined" || obj == null || obj == ""){        return true;    }else{        return false;    }}// 下面是对公共页面判断if(!isEmpty(xx) && xx.yy){    // 我的本意是判断这个对象是否存在,如果存在才继续执行后面的代码}// 改用另外的方式判断if(typeof xx != "undefined" && xx.yy){    // 这样是可以执行的}

分析如下:

传值:只是将变量的值传入函数,函数会另外配置内存保存参数值,所以并不会改变原变量的值。传址:***将变量实际保存的内存位置传入函数***,所以如果在函数中变更参数的值,也会同时变动原参数的值。数字、字符串和布尔----传值对象、数组和函数----传址字符串对象-------传址

1、如果把未定义的对象当作参数传递–相当于传址,就会去取变量实际保存的位置,但是变量根本没有声明/定义,内存中是找不到的,所以就报 not find vairable;
2、至于typeof 为什么可以判断,个人认为它应该是在window对象下面去找的。(后面解决)

0 0
原创粉丝点击