javascript jquery 判断对象为空的方式

java中存在很多空指针的问题,需要经常做预防和判断,如若不然,控制台出现恼人的异常,让人信心备受打击,早期写程序的时候没有经验,不能根据异常信息找到问题的根源,唯一做的事情就是祈祷,千万别出现什么异常信息啊!现在碰到与问题,到希望异常信息越详细越好,但偏偏事与愿违,我们所采用的框架居然把所有的异常全部throws 即使再controller获取也比较麻烦,一旦出现与预期不一样的结果,都不知道是哪里出了问题,调试起来确实不便.

js中也是一样,虽然不会出现一大串异常代码,但控制台还是会有错误警告的,这段时间一直使用chrome和IE11调试js代码,觉得其方便性不亚于直接使用MyEclipse调试java代码,java里面判断字符串变量是否为空,很简单了:

String str = "";
if(str!=null&&!"".equals(str)){
//your code
}

当然也可以使用框架上的API实现:

String str = "";
if(StringUtils.isNotEmpty(str)){
	//your code
}

StringUtils.isNotEmpty是 org.apache.commons.lang.这个包下面的类,别与spring里面的混为一谈.

在js中,也是经常需要判断变量是否为空的,要不然会经常出现undefined或null等情况.

如果是字符串类型或者对象类型,只需要采用这样的方式:

if(str){
   //your code
}

当str==undefined 或str==null或str==""的时候都是返回false的,但是当str=="0"的时候却返回true,因为"0"也是字符串,是非空的字符串变量.

如果当变量是数值类型,比如:

var i = 0;
if(i){
   //your code
}

这样是返回false的,js是弱类型的语言,对于String类型和数值类型的区分不严格,也就是通过var定义的变量可以是任何类型的,只要你对它进行初始化,比如:

var arr = [];
var str = "123";
var obj = {field:"123"};
var i = 2;
i = arr;
i = str;
i = obj;

变量定义以后进行初始化,值是什么类型的,变量就是什么类型的变量,然后重新进行赋值,变量的类型就又会发生改变,当然了,你可以理解为,var类型是一切类型的父类型,因此可以"包罗万象"了.因此以上的代码都是正确的,不会出现错误,但为了代码的可读性,建议不同类型的变量不要相互赋值,以免发生混乱.

最后多说一句,String类型的变量一般可以跟其他类型的变量发生转换比如:

var str = "0";
i = 0;
alert(str == i);

返回true

当变量未定义的时候,直接进行了初始化,也是可以识别的:

xx = 0;
if("0"==xx){
  alert(xx);
}

如果未定义且为初始化,直接拿来用,那就不行了.

//////////////////////////////////////////////////////////////////////////////////

jquery 判断一个对象是否存在

jQuery 代码判断一个对象是否存在:

***********************错误***********************

if($("#id")){}else{}因为 $(“#id”) 不管对象是否存在都会返回 object 。

***********************正确***********************

if($("#id").length>0){}else{}使用 jQuery 对象的属性 length 来判断,如果 > 0 就存在。

或者

if($("#id")[0]){} else {}

或者

直接使用原生的 Javascript 代码来判断: if(document.getElementById("id")){} else {}

////////////////////////////////////////////////////////////////////////////////

时间: 2024-10-12 17:13:29

javascript jquery 判断对象为空的方式的相关文章

javascript jquery 推断对象为空的方式

java中存在非常多空指针的问题,须要常常做预防和推断,如若不然,控制台出现恼人的异常,让人信心备受打击,早期敲代码的时候没有经验,不能依据异常信息找到问题的根源,唯一做的事情就是祈祷,千万别出现什么异常信息啊!如今碰到与问题,到希望异常信息越具体越好,但偏偏事与愿违,我们所採用的框架竟然把所有的异常所有throws 即使再controller获取也比較麻烦,一旦出现与预期不一样的结果,都不知道是哪里出了问题,调试起来确实不便. js中也是一样,尽管不会出现一大串异常代码,但控制台还是会有错误警

Javascript 中判断对象为空

发现了一个巧妙的实现: 需要检查一个对象(Object)是否为空,即不包含任何元素.Javascript 中的对象就是一个字典,其中包含了一系列的键值对(Key Value Pair).检查一个对象是否为空,等价于检查对象中有没有键值对.写成代码,形如: if (isEmptyObject(obj)) { // obj is empty } else { // not empty } 至于 isEmptyObject 的实现,jQuery 中有一个很有想法的方式,请看代码: function i

JavaScript中判断为整数的多种方式

原文:JavaScript中判断为整数的多种方式 之前记录过JavaScript中判断为数字类型的多种方式,这篇看看如何判断为整数类型(Integer). JavaScript中不区分整数和浮点数,所有数字内部都采用64位浮点格式表示.但实际操作中比如数组索引.位操作则是基于32位整数. 方式一.使用取余运算符判断 任何整数都会被1整除,即余数是0.利用这个规则来判断是否是整数. function isInteger(obj) { return obj%1 === 0 } isInteger(3

javascript --- jQuery --- Deferred对象

javascript --- jQuery --- Deferred对象 javascript的函数式编程是多么引人入胜,jQuery使代码尽可能的精简,intelligent! defer - 必应词典:v.迁延:听从:扣存:[军]使延期入伍所以deferred对象的含义就是"延迟"到未来某个点再执行. jQuery的官方文档给出了用jQuery.ajax()发送请求的基本方式http://api.jquery.com/jQuery.ajax/Example: Save some d

(转)JavaScript中判断对象类型的种种方法

我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串.如:"number","string","boolean","object","function","undefined"(可用于判断变量是否存在). 但 type

jquery判断对象是否显示或隐藏

if($('a.specail2').is(":visible")){ /**jquery判断对象是否显示或隐藏**/ $('a.one').hide(); $('a.specail2').show(); }else{ $('a.one').show(); $('a.specail2').hide(); }

c#中判断对象为空的几种方式(字符串等)

(1)先了解几个与空类型相关的关键字和对象  Null : 关键字表示不引用任何对象的空引用,它是所有引用类型变量的默认值,在2.0版本之前也就只有引用变量类型可以为null,如(string a=null)但在c# 2.0版本之后,Net也引入了可以为Null的值类型,但变量在定义的时候方式有所不同,如:int ? a=null.详细看http://msdn.microsoft.com/zh-cn/library/1t3y8s4s.aspx.不在内存中开辟内存地址,可用于引用是否可用.  DB

javascript 判断对象为空

https://segmentfault.com/a/1190000002540486 很多人会误解 JavaScript应该是没有字典这个东西的. JavaScript如果说一个对象是空的,那么这个对象应该为null.比如:var obj = {}; 这个不能叫对象为空,你只能说这个对象没有属性.内存还占着呢.不信你可以typeof(obj)试试. 一般我们也不会像Python一样直接判断, 一般会看看里面有没有某个属性,比如obj.name 直接判断就可以了, 再者, 一般我们用这个东西,

javascript是判断对象是否是数组

JS中的数据类型: 2大类 原始类型:值保存在变量本地的数据类型 5种:Number String Boolean undefined null Number:8bytes 舍入误差-->四舍五入 String:每个英文字符 1byte 每个汉字字符 2bytes 一旦创建内容不可改变 Boolean: true false 引用类型:值不保存在变量本地的数据类型 js中的变量 vs 数据库  内存中 硬盘上的文件  临时的 持久的  客户端   服务器端只存一份 一般用typeof判断数据类型