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);

 

时间: 2024-10-11 10:37:57

js判断变量与对象是否定义(undefined)转换函数的相关文章

js判断变量是否未定义的代码_javascript技巧

例如: if(!myVar01)alert("发生错误"); // 该代码直接发生异常,因为变量myVar01没有申明 if("undefined" == typeof myVar01)alert("发生错误"); // 这样写才不至于发生异常 而: var myVar01; if(undefined == myVar01)alert("发生错误"); // 该代码会正确运行 if("undefined"

js判断变量初始化的三种形式及推荐用的形式_javascript技巧

<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript"> //js判断变量初始化有三种形式 var x; if (x == null) { alert("x为null"); } if (typeof (x) == "undefined&qu

JS判断变量是否为空判断是否null_javascript技巧

/** * 判断是否null * @param data */ function isNull(data){ return (data == "" || data == undefined || data == null) ? "暂无" : data; } 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索是否为空 判断变量 javascript null判断.js判断变量为null.js判断变

js 判断变量是否为空

这应该是属于入门级的js文章了,我们js 判断变量是否为空实例简单介绍一下吧. <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <hea

js判断出两个字符串最大子串的函数实现方法_javascript技巧

如下所示: <!DOCTYPE html> <html> <head> <title></title> </head> <script type="text/javascript"> function search(str1,str2) { var i=j=k=a=jk=kk=0; var m=str1.length; var n=str2.length; var index=0; var maxlen

js判断变量是否为undefined

JavaScript 中有两个特殊数据类型:undefined 和 null,下面谈谈 undefined 的判断. js判断undefined类型    代码如下 复制代码  if (reValue== undefined){     alert("undefined");  } 发现判断不出来,最后查了下资料要用typeof 方法:  代码如下 复制代码 if (typeof(reValue) == "undefined") {    alert("u

JavaScript判断变量是对象还是数组的方法_javascript技巧

typeof都返回object 在JavaScript中所有数据类型严格意义上都是对象,但实际使用中我们还是有类型之分,如果要判断一个变量是数组还是对象使用typeof搞不定,因为它全都返回object 复制代码 代码如下: var o = { 'name':'lee' }; var a = ['reg','blue'];   document.write( ' o typeof is ' + typeof o); document.write( ' <br />'); document.wr

js判断变量是否空值的代码_javascript技巧

复制代码 代码如下: function empty(v){ switch (typeof v){ case 'undefined' : return true; case 'string' : if(trim(v).length == 0) return true; break; case 'boolean' : if(!v) return true; break; case 'number' : if(0 === v) return true; break; case 'object' : i

js判断是否含有GBK以外的字符的函数_java

boolean isGBK(String s) throws UnsupportedEncodingException { if(s.equals(new String(s.getBytes("gbk")))) return true; else return false; }