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. JS中的NaN

    什么是NaN?它的类型是什么?如何可靠地测试一个值是否等于NaN? NaN属性表示“不是数字”的值.这个特殊值是由于一个操作数是非数字的(例如“abc”/ 4)或者因为操作的结果是非数字而无法执行的. ...

  2. tp框架报错 Namespace declaration statement has to be the very first statement in the script

    Namespace declaration statement has to be the very first statement in the script tp框架报这个错误,错误行数就是nam ...

  3. javascript-js中技巧集合

    1.值的转换 在JavaScript中,一共有两种类型的值:原始值(primitives)和对象值(objects).原始值有:undefined, null, 布尔值(booleans), 数字(n ...

  4. CURL库的宏定义列表

    列表CURL库一共同拥有17个函数 curl_close:关闭CURL会话 curl_copy_handle:复制一个CURL会话句柄,同一时候3复制其全部參数 curl_errno:返回最后一个错误 ...

  5. 百度地图 key申请以及基础地图的演示

    之前做过一个拼车的项目,用到了百度地图,如今做电商项目,也遇到了要使用地图,可是刚来这公司不久项目不是自己做的,今天一个同事说定位那边有点问题,所以如今不忙,好好搞下地图,为了以后业务扩展或者出现故障 ...

  6. 晋IT分享成长沙龙集锦

    第一期"晋IT"分享成长沙龙于2014年7月19日圆满结束.下面是相关内容整理和第二期预告. 各位伙伴认真的介绍自己,介绍自己的业务,分析自己眼下存在的问题,大家一起探讨,真诚出谋 ...

  7. perl getopt 用法

    我们在linux经常常使用到一个程序须要增加參数,如今了解一下perl中的有关控制參数的函数.getopt.在linux有的參数有二种形式.一种是--help,还有一种是-h.也就是-和--的分别.- ...

  8. android实现自动安装

    安装: String str = "/CanavaCancel.apk"; String fileName = Environment.getExternalStorageDire ...

  9. 51nod 2020 排序相减(暴力解法)

    题目: 代码: #include <bits\stdc++.h> using namespace std; int trim(int x){ ]; ;i < ; i++){ a[i] ...

  10. ModelDriven机制及其运用

    ModelDriven 为什么需要ModelDriven 所谓ModelDriven ,意思是直接把实体类当成页面数据的收集对象.比如,有实体类User 如下: package cn.com.lead ...