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

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

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 {}

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

javascript jquery 推断对象为空的方式的更多相关文章

  1. javascript --- jQuery --- Deferred对象

    javascript --- jQuery --- Deferred对象 javascript的函数式编程是多么引人入胜,jQuery使代码尽可能的精简,intelligent! defer - 必应 ...

  2. Javascript 中判断对象为空

    发现了一个巧妙的实现: 需要检查一个对象(Object)是否为空,即不包含任何元素.Javascript 中的对象就是一个字典,其中包含了一系列的键值对(Key Value Pair).检查一个对象是 ...

  3. javascript如何判断对象为空

    1.自定义jQuery的isEmptyObject()方法. function isEmptyObject(e) { var t; for (t in e) return !1; return !0 ...

  4. javascript jquery封装对象时的错误,求解!我想知道为什么

    jquery   封装对象时的错误 --------------------------------------------<input id="name" name=&qu ...

  5. 使用JQuery获取对象的几种方式

    1.先讲讲JQuery的概念 JQuery首先是由一个 America 的叫什么 John Resig的人创建的,后来又很多的JS高手也加入了这个团队.其实 JQuery是一个JavaScript的类 ...

  6. 使用JQuery获取对象的几种方式(转)

    原文:http://51876.iteye.com/blog/1350358 1.先讲讲JQuery的概念 JQuery首先是由一个 America 的叫什么 John Resig的人创建的,后来又很 ...

  7. Jquery 获取对象的几种方式(转载)

    1.先讲讲JQuery的概念 JQuery首先是由一个 America 的叫什么 John Resig的人创建的,后来又很多的JS高手也加入了这个团队.其实 JQuery是一个JavaScript的类 ...

  8. JavaScript中定义对象的四种方式

    最近在阅读< JavaScript 高级程序设计>,未免遗忘读过的内容,就打算以博客的形式做些读书笔记.今天介绍的是 JavaScript 中的四种定义对象的方法,除了这四种方法,还有工厂 ...

  9. Jquery 获取对象的几种方式介绍

    1.JQuery的核心的一些方法 each(callback) '就像循环 $("Element").length; '元素的个数,是个属性 $("Element&quo ...

随机推荐

  1. Unity的Json解析<一>--读取Json文件

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50373558 作者:car ...

  2. 样本方差的无偏估计与(n-1)的由来

    一.无偏估计 所谓总体参数估计量的无偏性指的是,基于不同的样本,使用该估计量可算出多个估计值,但它们的平均值等于被估参数的真值. 在某些场合下,无偏性的要求是有实际意义的.例如,假设在某厂商与某销售商 ...

  3. Linux用shell链接上传文件

    yum install lrzsz 安装lrzsz ,直接拖拽到黑框框就可以上传了 或者使用 rz 命令,会弹出选择文件的框框

  4. java application指的是什么

    在Java语言中,能够独立运行的程序称为Java应用程序(Application).Java语言还有另外一种程序——Applet程序.Applet程序(也称Java小程序)是运行于各种网页文件中,用于 ...

  5. Error: Password file read access must be restricted: /etc/cassandra/jmxremote.password

    在配置JMX远程访问的时候,设置jmxremote.password文件权限,修改该文件时添加写权限,chmod +w jmxremote.password ,放开角色信息那俩行的注释,保存,再使用c ...

  6. [windows+cocos2dx]CCSprite精灵类

    序言 回想cocos2dx,之前在mac+Xcode平台学习了一遍cocos2dx,一年时间不接触cocos了.一直在搞Unity3d.如今还是就之前所学温故温故,但不再用Xcode来写.用经常使用的 ...

  7. [linux]shell中,反引號(`)的应用

    反引號位 (`) 位于键盘的Tab键的上方.1键的左方.注意与单引號(')位于Enter键的左方的差别. 反引號位 (`)在Linux中起着命令替换的作用. 命令替换是指shell可以将一个命令的标准 ...

  8. html单行、多行文本溢出隐藏

    欢迎加入前端交流群来py:749539640 单行: div{/* 单行溢出隐藏 */ width: 150px; white-space: nowrap; overflow: hidden; tex ...

  9. Binary Indexed Tree

    我借鉴了这个视频中的讲解的填坑法,我认为非常易于理解.有FQ能力和基本英语听力能力请直接去看视频,并不需要继续阅读. naive 算法 考虑一个这样的场景: 给定一个int数组, 我们想知道它的连续子 ...

  10. Servlet学习(九)——request

    request运行流程在Servlet学习(四)——response已介绍,不再赘述 1.通过抓包工具获取Http请求 因为request代表请求,所以我们可以通过该对象分别获得Http请求的请求行, ...